Browse Source

微浦EIS 点料机对接更新条码数量 接口调整,先实时更新条码数(ERP+MES),再生成条码入库申请单(主从表,一小时内的数据合并一张单,点料间隔超1小时则产生新单据)

xiaost 6 months ago
parent
commit
504aad3439
1 changed files with 46 additions and 4 deletions
  1. 46 4
      src/main/java/com/uas/eis/serviceImpl/MESHelperServiceImpl.java

+ 46 - 4
src/main/java/com/uas/eis/serviceImpl/MESHelperServiceImpl.java

@@ -1943,12 +1943,54 @@ public class MESHelperServiceImpl implements MESHelperService {
 		String qty  = maps.get("QTY").toString();
 		Map<Object, Object> map = new HashMap<>();
 		SqlRowList rs = baseDao.queryForRowSet(" select VE_SHORTNAME,pr_detail,pr_spec,bar_prodcode,to_char(bar_madedate,'YYYY-MM-DD')bar_madedate,bar_code,bar_remain,bar_id from barcode left join product on pr_code = bar_prodcode LEFT JOIN VENDOR@WP ON BAR_VENDCODE  = VE_CODE where bar_code = '"+barcode+"'  ");
-		if(rs.next())
-		{
-			baseDao.updateByCondition("barcode","bar_remain = '"+qty+"' " +
+		if(rs.next()) {
+			baseDao.updateByCondition("barcode","bar_remain = '"+qty+"',bar_status = 1 " +
 					" ","bar_code = '"+barcode+"' ");
 			baseDao.execute("insert into barcodelogger(bl_id,bl_barcode,bl_barid,bl_prodcode,bl_whcode,bl_date,bl_inman,bl_action,bl_description)"
-					+ " values(barcodelogger_seq.nextval,?,?,?,?,sysdate,?,'修改数量',?)",barcode,rs.getInt("bar_id"),rs.getString("bar_prodcode"),"","ADMIN","原数量:"+rs.getDouble("bar_remain")+",新数量:"+qty);
+					+ " values(barcodelogger_seq.nextval,?,?,?,?,sysdate,?,'点料机更新条码数量',?)",barcode,rs.getInt("bar_id"),rs.getString("bar_prodcode"),"","ADMIN","原数量:"+rs.getDouble("bar_remain")+",新数量:"+qty);
+			//点料机接口调整,先实时更新条码数(ERP+MES),再生成条码入库申请单(主从表,一小时内的数据合并一张单,点料间隔超1小时则产生新单据)
+			// 单据审核后更新条码的库存状态
+			SqlRowList rs1 = baseDao.queryForRowSet("select bar_id,bar_remain,bar_prodcode from barcode@WP where bar_code=?",barcode);
+			if(rs1.next()) {
+				baseDao.execute("update barcode@WP set bar_remain=?,bar_outno = '',bar_status = 2 where bar_id=?", qty, rs1.getString("bar_id"));
+				baseDao.execute("insert into barcodelogger@WP(bl_id,bl_barcode,bl_barid,bl_prodcode,bl_whcode,bl_date,bl_inman,bl_action,bl_description)"
+						+ " values(barcodelogger_seq.nextval@WP,?,?,?,?,sysdate,?,'点料机更新条码数量',?)",barcode,rs1.getInt("bar_id"),rs1.getString("bar_prodcode"),"","ADMIN","原数量:"+rs1.getDouble("bar_remain")+",新数量:"+qty);
+				//插入条码状态更新单
+				String ctcode = null;
+				int cddetno = 0;
+				boolean has = false;
+				Integer ctid = baseDao.getJdbcTemplate().queryForObject(" select max(ct_id) from customtable@WP WHERE CT_CALLER='RF-TMSC' AND " +
+						"  to_char(ct_recorddate,'yyyy-mm-dd hh24') =to_char(sysdate,'yyyy-mm-dd hh24') and CT_SOURCETYPE='点料机' and ct_statuscode='ENTERING' ",Integer.class);
+				if(null == ctid){
+					//插入主表
+					String sql = "select customtable_seq.nextval@WP from dual";
+					SqlRowList rs2 = baseDao.queryForRowSet(sql);
+					if (rs2.next()) {
+						ctid = rs2.getInt(1);
+						//插入主表
+						ctcode = baseDao.callProcedure("Sp_GetMaxNumber@WP", new Object[] { "RF-TMSC", 2 });
+						baseDao.execute("insert into customtable@WP(ct_id,ct_caller,ct_code,ct_sourcekind,ct_sourcetype," +
+								" ct_recorddate,ct_statuscode,ct_status,ct_recorder,ct_varchar50_1) " +
+								" select ?,'RF-TMSC',? ,'条码删除申请','点料机',sysdate,'ENTERING','在录入','点料机','点料机对接自动生成' from dual ",ctid,ctcode);
+					}
+				}else{
+					SqlRowList rs2 = baseDao.queryForRowSet("select ct_code, " +
+							" nvl((select max(cd_detno) from customtabledetail@WP where cd_ctid=ct_id),0) cd_detno ," +
+							" nvl((select max(cd_detno) from customtabledetail@WP where cd_ctid=ct_id and cd_varchar50_1=?),0) detno" +
+							" from customtable@WP WHERE CT_ID="+ctid,barcode);
+					if(rs2.next()){
+						ctcode = rs2.getString("ct_code");
+						cddetno = rs2.getInt("cd_detno");
+						has = rs2.getInt("detno")>0 ? true:false;
+					}
+				}
+				if(null != ctid && ctid.intValue()>0 && !has){
+					//如果当前条码不存在明细行则插入到明细行
+					cddetno = cddetno+1;
+					baseDao.execute("insert into customtabledetail@WP(cd_id,cd_ctid,CD_DETNO,cd_varchar50_1) " +
+							" select customtabledetail_seq.nextval@WP,?,?,? from dual",ctid,cddetno,barcode);
+				}
+			}
 			map.put("ret_code","0");
 			map.put("ret_msg","OK");
 			map.put("PN",rs.getString("bar_prodcode"));