|
@@ -1057,18 +1057,31 @@ public class CommonSeriveImpl implements CommonService {
|
|
|
if (tab.toString().contains(" ")) tab=tab.toString().split(" ")[0];
|
|
|
String keyField = objects[1].toString().contains(" ") ? objects[1].toString().split(" ")[1] : objects[1].toString();
|
|
|
|
|
|
- List<String> gridSql = SqlUtil.getUpdateSqlbyGridStore(grid, tab.toString(), keyField);
|
|
|
+ List<String> gridSql = new ArrayList<>();
|
|
|
for (Map<Object, Object> map : grid) {
|
|
|
Object id = map.get(keyField);
|
|
|
- if(modify.size()>0){
|
|
|
+ Map<Object, Object> updateMap = new HashMap<>();
|
|
|
+ if(modify.size()>0){//没有可更新字段不处理
|
|
|
+ updateMap.put(keyField,id);
|
|
|
+ //只更新可更新字段
|
|
|
for(Object[] modi : modify){
|
|
|
Object[] field = baseDao.getFieldsDataByCondition(tab.toString(), new String[]{ modi[0].toString(),detnofield.toString()}, ""+keyField+"="+id);
|
|
|
- if(field[0]!=null && !field[0].equals(map.get(modi[0].toString()))){
|
|
|
+ String fieldValue = StringUtil.hasText(field[0])?field[0].toString():"";
|
|
|
+ String changeValue = StringUtil.hasText(map.get(modi[0].toString()))?map.get(modi[0].toString()).toString():"";
|
|
|
+ if ("PRODIODETAIL".equals(tab.toString().toUpperCase())){
|
|
|
+ Object status = baseDao.getFieldDataByCondition("prodinout left join prodiodetail on pi_id=pd_piid", "pi_statuscode", "pd_id=" + id);
|
|
|
+ if ("POSTED".equals(status)){
|
|
|
+ if("pd_whcode".equals(modi[0]) || "pd_prodcode".equals(modi[0]) || "pd_batchcode".equals(modi[0]) || "pd_inqty".equals(modi[0]) || "pd_outqty".equals(modi[0])){
|
|
|
+ BaseUtil.showError("已过账的单据不允许修改仓库、物料、批号、数量!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!fieldValue.equals(changeValue)){
|
|
|
StringBuffer sb1 = new StringBuffer();
|
|
|
- sb1.append("行号"+field[1]+":"+modi[1]+"由"+field[0]+"变更为"+map.get(modi[0].toString())+";<br> ");
|
|
|
+ sb1.append("行号"+field[1]+":“"+modi[1]+"”由“"+fieldValue+"”变更为“"+changeValue+"”;<br> ");
|
|
|
sb.append(sb1);
|
|
|
}
|
|
|
- }
|
|
|
+ updateMap.put(modi[0],map.get(modi[0].toString()));
|
|
|
}
|
|
|
if (detnofield != null) {
|
|
|
detnos.append(map.get(detnofield)).append(",");
|
|
@@ -1076,6 +1089,9 @@ public class CommonSeriveImpl implements CommonService {
|
|
|
if (id == null || "".equals(id.toString()) || Integer.parseInt(id.toString()) == 0) {
|
|
|
map.put(keyField, baseDao.getSeqId(tab.toString().toUpperCase().split(" ")[0] + "_SEQ"));
|
|
|
gridSql.add(SqlUtil.getInsertSqlByMap(map, tab.toString()));
|
|
|
+ }else{
|
|
|
+ gridSql.add(SqlUtil.getUpdateSqlByFormStore(updateMap, tab.toString(), keyField));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
baseDao.execute(gridSql);
|