生成不合格审批单调整

This commit is contained in:
mzr 2024-10-21 12:42:58 +08:00
parent ff7ca07612
commit 2ac973c348
1 changed files with 58 additions and 36 deletions

View File

@ -20,6 +20,7 @@ import org.apache.commons.lang3.StringUtils;
import com.informix.util.stringUtil; import com.informix.util.stringUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.beanutils.PropertyUtils;
@ -575,13 +576,14 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa
AggDhjydMasterVO vo = dao.findByPk(AggDhjydMasterVO.class, pk, false); AggDhjydMasterVO vo = dao.findByPk(AggDhjydMasterVO.class, pk, false);
DhjydMasterVO mainVO = vo.getParentVO(); DhjydMasterVO mainVO = vo.getParentVO();
// SuperVO mainVO = getMainVO(vo); // SuperVO mainVO = getMainVO(vo);
String oldCode = mainVO.getCode();
mainVO.setPrimaryKey(null); mainVO.setPrimaryKey(null);
mainVO.setStatus(VOStatus.NEW); mainVO.setStatus(VOStatus.NEW);
mainVO.setAttributeValue("srcbilltype", null); mainVO.setAttributeValue("srcbilltype", null);
// 来源单据主键改成当前传递的检验单的主键 // 来源单据主键改成当前传递的检验单的主键
mainVO.setAttributeValue("srcbillid", pk); mainVO.setAttributeValue("srcbillid", pk);
mainVO.setAttributeValue("vsourcecode", mainVO.getCode()); mainVO.setAttributeValue("vsourcecode", oldCode);
mainVO.setAttributeValue("code", null); mainVO.setAttributeValue("code", null);
// mainVO.setAttributeValue("", null); // mainVO.setAttributeValue("", null);
@ -612,29 +614,30 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa
"pk_billtypecode = 'DHJY-Cxx-02' "); "pk_billtypecode = 'DHJY-Cxx-02' ");
mainVO.setAttributeValue("transtypepk", billtypeid); mainVO.setAttributeValue("transtypepk", billtypeid);
mainVO.setAttributeValue("transtype", "DHJY-Cxx-02"); mainVO.setAttributeValue("transtype", "DHJY-Cxx-02");
// mainVO.setAttributeValue("vmemo", "mzr");
// 获取子表的数据 // 获取子表的数据
DhjydSlave0VO[] dhjydSlave0VOs = (DhjydSlave0VO[]) vo.getChildren(DhjydSlave0VO.class); DhjydSlave0VO[] dhjydSlave0VOs = (DhjydSlave0VO[]) vo.getChildren(DhjydSlave0VO.class);
DhjydSlave0VO[] newVOs = new DhjydSlave0VO[3]; DhjydSlave0VO[] newVOs = new DhjydSlave0VO[3];
if (dhjydSlave0VOs != null && dhjydSlave0VOs.length > 0) { if (dhjydSlave0VOs != null && dhjydSlave0VOs.length > 0) {
DhjydSlave0VO subvo = dhjydSlave0VOs[0]; DhjydSlave0VO oldVo = dhjydSlave0VOs[0];
// 检查结果 合格回用不合格 // 检查结果 合格回用不合格
String def1 = subvo.getDef1(); String def1 = oldVo.getDef1();
Object def1Code = null; String getTestResCodeSql = "SELECT a.code,a.pk_defdoc " +
try { "FROM bd_defdoc a LEFT JOIN bd_defdoclist b ON a.pk_defdoclist = b.pk_defdoclist " +
def1Code = new HYPubBO().findColValue("bd_defdoc", "code", " dr = 0 and pk_defdoc='" + def1 + "' "); "WHERE a.dr = 0 AND a.pk_defdoc = '[def1]' AND b.code = 'checkresult'";
} catch (UifException e) { getTestResCodeSql = getTestResCodeSql.replace("[def1]", def1);
e.printStackTrace(); HashMap<String,String> headMap = (HashMap<String,String>)getBaseDAO().executeQuery(getTestResCodeSql, new MapProcessor());
} String def1Code = headMap.getOrDefault("code", "");
subvo.setPrimaryKey(null); oldVo.setPrimaryKey(null);
subvo.setStatus(VOStatus.NEW); oldVo.setStatus(VOStatus.NEW);
subvo.setAttributeValue("pk_chekbill_b", null); oldVo.setAttributeValue("pk_chekbill_b", null);
subvo.setAttributeValue("srcbilltype", null); oldVo.setAttributeValue("srcbilltype", null);
subvo.setAttributeValue("srcbillid", null); oldVo.setAttributeValue("srcbillid", null);
subvo.setAttributeValue("rowno", null); oldVo.setAttributeValue("rowno", null);
subvo.setAttributeValue("srcrowno", null); oldVo.setAttributeValue("srcrowno", null);
// 根据自定义档案的编码查询对应的主键 // 根据自定义档案的编码查询对应的主键
String getTestResSql = "select code,pk_defdoc from bd_defdoc where dr = 0 and code in ('01','02','03')"; String getTestResSql = "SELECT a.code,a.pk_defdoc " +
"FROM bd_defdoc a LEFT JOIN bd_defdoclist b ON a.pk_defdoclist = b.pk_defdoclist " +
"WHERE a.dr = 0 AND a.code IN ('01','02','03') AND b.code = 'checkresult'";
List<Map<String, Object>> testResList = (List<Map<String, Object>>) getBaseDAO().executeQuery(getTestResSql, List<Map<String, Object>> testResList = (List<Map<String, Object>>) getBaseDAO().executeQuery(getTestResSql,
new MapListProcessor()); new MapListProcessor());
Map<String, String> testResMap = new HashMap<>(); Map<String, String> testResMap = new HashMap<>();
@ -643,38 +646,57 @@ public class DhjydMasterVOServiceImpl extends ServiceSupport implements IDhjydMa
testResMap.put(map.getOrDefault("code", "") + "", map.getOrDefault("pk_defdoc", "") + ""); testResMap.put(map.getOrDefault("code", "") + "", map.getOrDefault("pk_defdoc", "") + "");
} }
} }
DhjydSlave0VO vo0 = new DhjydSlave0VO();
DhjydSlave0VO vo1 = new DhjydSlave0VO();
DhjydSlave0VO vo2 = new DhjydSlave0VO();
BeanUtil.copyProperties(oldVo, vo0);
BeanUtil.copyProperties(oldVo, vo1);
BeanUtil.copyProperties(oldVo, vo2);
// 第1行 合格 第2行 回用 第3行 不合格 // 第1行 合格 第2行 回用 第3行 不合格
if ("01".equals(def1Code)) { if ("01".equals(def1Code)) {
mainVO.setAttributeValue("vmemo", def1Code + new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime()));
// 合格 // 合格
newVOs[0] = subvo; vo0.setNunqualifiednum(UFDouble.ZERO_DBL);
newVOs[0] = vo0;
// 回用
// 设置检验结果的值
vo1.setAttributeValue("def1", testResMap.get("02"));
newVOs[1] = vo1;
// 不合格 // 不合格
DhjydSlave0VO vo2 = new DhjydSlave0VO();
vo2 = subvo;
vo2.setNunqualifiednum(UFDouble.ZERO_DBL); vo2.setNunqualifiednum(UFDouble.ZERO_DBL);
// 设置检验结果的值 // 设置检验结果的值
vo2.setAttributeValue("def1", testResMap.get("02"));
newVOs[1] = vo2;
vo2.setAttributeValue("def1", testResMap.get("03")); vo2.setAttributeValue("def1", testResMap.get("03"));
newVOs[2] = vo2; newVOs[2] = vo2;
} else if ("02".equals(def1Code)) { } else if ("02".equals(def1Code)) {
// »ØÓà mainVO.setAttributeValue("vmemo", def1Code + new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime()));
newVOs[1] = subvo; // 合格
newVOs[0] = subvo; vo0.setNunqualifiednum(UFDouble.ZERO_DBL);
subvo.setAttributeValue("def1", testResMap.get("01")); vo0.setAttributeValue("def1", testResMap.get("01"));
newVOs[2] = subvo; newVOs[0] = vo0;
subvo.setAttributeValue("def1", testResMap.get("03"));
} else if ("03".equals(def1Code)) { // 回用
// ²»ºÏ¸ñ newVOs[1] = vo1;
newVOs[2] = subvo;
// 不合格
vo0.setAttributeValue("def1", testResMap.get("03"));
newVOs[2] = vo2;
} else if ("03".equals(def1Code)) {
mainVO.setAttributeValue("vmemo", def1Code + new UFDateTime(InvocationInfoProxy.getInstance().getBizDateTime()));
// 合格 // 合格
DhjydSlave0VO vo0 = new DhjydSlave0VO();
vo0 = subvo;
vo0.setQualifiednum(UFDouble.ZERO_DBL); vo0.setQualifiednum(UFDouble.ZERO_DBL);
// 设置检验结果的值 // 设置检验结果的值
vo0.setAttributeValue("def1", testResMap.get("01")); vo0.setAttributeValue("def1", testResMap.get("01"));
newVOs[0] = vo0; newVOs[0] = vo0;
vo0.setAttributeValue("def1", testResMap.get("02"));
newVOs[1] = vo0; // 回用
// 设置检验结果的值
vo1.setAttributeValue("def1", testResMap.get("02"));
newVOs[1] = vo1;
// 不合格
newVOs[2] = vo2;
} }
} }