|
@@ -70,26 +70,43 @@ public class MESServiceImpl implements MESService {
|
|
|
}
|
|
}
|
|
|
Object vaid = baseDao.getFieldDataByCondition("verifyApply", "va_id", "va_statuscode='AUDITED" +
|
|
Object vaid = baseDao.getFieldDataByCondition("verifyApply", "va_id", "va_statuscode='AUDITED" +
|
|
|
"' and va_mescode='" + mesCode + "'");
|
|
"' and va_mescode='" + mesCode + "'");
|
|
|
|
|
+ int count1 = baseDao.getCount("select count(1) from VerifyApplyDetail where nvl(vad_pucode,' ')<>' ' and " +
|
|
|
|
|
+ "vad_vaid=" + vaid);
|
|
|
|
|
+ String caller="VerifyApply!ToOtherIn";
|
|
|
|
|
+ if (count1>0){
|
|
|
|
|
+ caller="VerifyApply!ToPurcIn";
|
|
|
|
|
+ }
|
|
|
int piid ;
|
|
int piid ;
|
|
|
//判断已转数
|
|
//判断已转数
|
|
|
Object chekQty = baseDao.getJdbcTemplate().queryForObject("select wmsys.wm_concat('收料单:'||vad_code||'序号:'||vad_detno) from VerifyApplyDetail where vad_qty <= vad_yqty and vad_vaid = "+vaid, String.class);
|
|
Object chekQty = baseDao.getJdbcTemplate().queryForObject("select wmsys.wm_concat('收料单:'||vad_code||'序号:'||vad_detno) from VerifyApplyDetail where vad_qty <= vad_yqty and vad_vaid = "+vaid, String.class);
|
|
|
if(chekQty !=null){
|
|
if(chekQty !=null){
|
|
|
return ApiResponse.failRsp("10013",request.getHeader("RequestId"),"检测到" + chekQty + ",本次数量超出可转数量!");
|
|
return ApiResponse.failRsp("10013",request.getHeader("RequestId"),"检测到" + chekQty + ",本次数量超出可转数量!");
|
|
|
}
|
|
}
|
|
|
- // 判断该收料通知单是否已经转入过采购验收单
|
|
|
|
|
- Object code = baseDao.getFieldDataByCondition("VerifyApply", "va_code", "va_id=" + vaid);
|
|
|
|
|
- code = baseDao.getFieldDataByCondition("ProdInOut", "pi_inoutno", "pi_sourcecode='" + code + "' and PI_REFNO='采购收料单'");
|
|
|
|
|
- if (code != null && !code.equals("")) {
|
|
|
|
|
- return ApiResponse.failRsp("10014",request.getHeader("RequestId"),"该收料单已转入过采购验收单,验收单号[" + code + "]");
|
|
|
|
|
- } else {
|
|
|
|
|
- String sellerName = StringUtil.nvl(store.get("sellerName"), "管理员");
|
|
|
|
|
- Employee employee = baseDao.getJdbcTemplate().queryForObject("select * from employee where em_name=?",
|
|
|
|
|
- new BeanPropertyRowMapper<Employee>(Employee.class), sellerName);
|
|
|
|
|
- // 转采购验收单
|
|
|
|
|
- Key key = transferRepository.transfer("VerifyApply!ToPurcIn", vaid,employee);
|
|
|
|
|
- piid = key.getId();
|
|
|
|
|
- // 转入明细
|
|
|
|
|
- transferRepository.transferDetail("VerifyApply!ToPurcIn", vaid, key,employee);
|
|
|
|
|
|
|
+ if ("VerifyApply!ToPurcIn".equals(caller)) {
|
|
|
|
|
+ // 判断该收料通知单是否已经转入过采购验收单
|
|
|
|
|
+ Object code = baseDao.getFieldDataByCondition("VerifyApply", "va_code", "va_id=" + vaid);
|
|
|
|
|
+ code = baseDao.getFieldDataByCondition("ProdInOut", "pi_inoutno", "pi_sourcecode='" + code + "' and PI_REFNO='采购收料单'");
|
|
|
|
|
+ if (code != null && !code.equals("")) {
|
|
|
|
|
+ return ApiResponse.failRsp("10014", request.getHeader("RequestId"), "该收料单已转入过采购验收单,验收单号[" + code + "]");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if ("VerifyApply!ToOtherIn".equals(caller)) {
|
|
|
|
|
+ // 判断该收料通知单是否已经转入过采购验收单
|
|
|
|
|
+ Object code = baseDao.getFieldDataByCondition("VerifyApply", "va_code", "va_id=" + vaid);
|
|
|
|
|
+ code = baseDao.getFieldDataByCondition("ProdInOut", "pi_inoutno", "pi_sourcecode='" + code + "' and PI_REFNO='采购收料单'");
|
|
|
|
|
+ if (code != null && !code.equals("")) {
|
|
|
|
|
+ return ApiResponse.failRsp("10014", request.getHeader("RequestId"), "该收料单已转入过其它入库单,单号[" + code + "]");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ String sellerName = StringUtil.nvl(store.get("sellerName"), "管理员");
|
|
|
|
|
+ Employee employee = baseDao.getJdbcTemplate().queryForObject("select * from employee where em_name=?",
|
|
|
|
|
+ new BeanPropertyRowMapper<Employee>(Employee.class), sellerName);
|
|
|
|
|
+ // 转采购验收单
|
|
|
|
|
+ Key key = transferRepository.transfer(caller, vaid,employee);
|
|
|
|
|
+ piid = key.getId();
|
|
|
|
|
+ // 转入明细
|
|
|
|
|
+ transferRepository.transferDetail(caller, vaid, key,employee);
|
|
|
|
|
+ if ("VerifyApply!ToPurcIn".equals(caller)) {
|
|
|
if (piid != 0) {
|
|
if (piid != 0) {
|
|
|
baseDao.execute("update prodiodetail set pd_prodid=(select pr_id from product where pd_prodcode=pr_code) where pd_piid=" + piid
|
|
baseDao.execute("update prodiodetail set pd_prodid=(select pr_id from product where pd_prodcode=pr_code) where pd_piid=" + piid
|
|
|
+ " and nvl(pd_prodcode,' ')<>' '");
|
|
+ " and nvl(pd_prodcode,' ')<>' '");
|
|
@@ -102,8 +119,6 @@ public class MESServiceImpl implements MESService {
|
|
|
baseDao.execute("Insert into ProdChargeDetail(pd_id,pd_piid,pd_detno,pd_type,pd_amount,pd_currency,pd_rate) "
|
|
baseDao.execute("Insert into ProdChargeDetail(pd_id,pd_piid,pd_detno,pd_type,pd_amount,pd_currency,pd_rate) "
|
|
|
+ "select ProdChargeDetail_seq.nextval, " + piid + ", pd_detno, pd_type,pd_amount,pd_currency,pd_rate "
|
|
+ "select ProdChargeDetail_seq.nextval, " + piid + ", pd_detno, pd_type,pd_amount,pd_currency,pd_rate "
|
|
|
+ "from ProdChargeDetailAN where PD_ANID=" + vaid);
|
|
+ "from ProdChargeDetailAN where PD_ANID=" + vaid);
|
|
|
- // 修改收料状态
|
|
|
|
|
- baseDao.updateByCondition("VerifyApply", "va_turnstatuscode='TURNIN',va_turnstatus='已入库'", "va_id=" + vaid);
|
|
|
|
|
}
|
|
}
|
|
|
//
|
|
//
|
|
|
if (piid != 0) {
|
|
if (piid != 0) {
|
|
@@ -136,24 +151,17 @@ public class MESServiceImpl implements MESService {
|
|
|
"pu_turnstatuscode='" + statuscode + "',pu_turnstatus='" + status + "'", "pu_code='" + pCode + "'");
|
|
"pu_turnstatuscode='" + statuscode + "',pu_turnstatus='" + status + "'", "pu_code='" + pCode + "'");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- return ApiResponse.successRsp("0",request.getHeader("RequestId"),"入库成功");
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ // 修改收料状态
|
|
|
|
|
+ baseDao.updateByCondition("VerifyApplyDetail", "vad_yqty=vad_qty", "va_id=" + vaid);
|
|
|
|
|
+ baseDao.updateByCondition("VerifyApply", "va_turnstatuscode='TURNIN',va_turnstatus='已入库'", "va_id=" + vaid);
|
|
|
|
|
+ return ApiResponse.successRsp("0",request.getHeader("RequestId"),"入库成功");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public ApiResult<String> prodInOutMakeIn(HttpServletRequest request) {
|
|
public ApiResult<String> prodInOutMakeIn(HttpServletRequest request) {
|
|
|
- String data="";
|
|
|
|
|
- try {
|
|
|
|
|
- data = PSHttpUtils.readRaw(request.getInputStream());
|
|
|
|
|
- } catch (IOException e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- }
|
|
|
|
|
- JSONObject jsonObject = JSON.parseObject(data);
|
|
|
|
|
- Object data1 = jsonObject.get("Data");
|
|
|
|
|
- JSONObject jsonObject1 = JSON.parseObject(StringUtil.nvl(data1,""));
|
|
|
|
|
- Object page1 = jsonObject1.get("Page1");
|
|
|
|
|
- Object page2 = jsonObject1.get("Page2");
|
|
|
|
|
- JSONArray jsonArray = JSON.parseArray(StringUtil.nvl(page1, ""));
|
|
|
|
|
|
|
+ Map<String, JSONArray> data = getData(request);
|
|
|
|
|
+ JSONArray jsonArray = data.get("main");
|
|
|
int id=0;
|
|
int id=0;
|
|
|
String code="";
|
|
String code="";
|
|
|
List<String> sqls = new ArrayList<>();
|
|
List<String> sqls = new ArrayList<>();
|
|
@@ -174,7 +182,7 @@ public class MESServiceImpl implements MESService {
|
|
|
"'未过账','"+map4.get("FNumber")+"','"+map4.get("FName")+"','"+map5.get("FNumber")+"','"+map5.get("FName")+"','"+map6.get("FNumber")+"','"+map7.get("FName")+"','ENTERING','在录入'," +
|
|
"'未过账','"+map4.get("FNumber")+"','"+map4.get("FName")+"','"+map5.get("FNumber")+"','"+map5.get("FName")+"','"+map6.get("FNumber")+"','"+map7.get("FName")+"','ENTERING','在录入'," +
|
|
|
"'"+map8.get("FName")+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd HH24:mi:ss'),'UNPRINT','未打印')");
|
|
"'"+map8.get("FName")+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd HH24:mi:ss'),'UNPRINT','未打印')");
|
|
|
}
|
|
}
|
|
|
- JSONArray jsonArray1 = JSON.parseArray(StringUtil.nvl(page2, ""));
|
|
|
|
|
|
|
+ JSONArray jsonArray1 = data.get("detail");
|
|
|
int detno=0;
|
|
int detno=0;
|
|
|
for (int i = 0; i <jsonArray1.size() ; i++) {
|
|
for (int i = 0; i <jsonArray1.size() ; i++) {
|
|
|
detno=i+1;
|
|
detno=i+1;
|
|
@@ -304,4 +312,274 @@ public class MESServiceImpl implements MESService {
|
|
|
return ApiResponse.successRsp("0",request.getHeader("RequestId"),"生产报废单:"+code+",请在ERP查看!");
|
|
return ApiResponse.successRsp("0",request.getHeader("RequestId"),"生产报废单:"+code+",请在ERP查看!");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ApiResult<String> prodInOutOtherOut(HttpServletRequest request) {
|
|
|
|
|
+ Map<String, JSONArray> data = getData(request);
|
|
|
|
|
+ JSONArray jsonArray = data.get("main");
|
|
|
|
|
+ int id=0;
|
|
|
|
|
+ String code="";
|
|
|
|
|
+ List<String> sqls = new ArrayList<>();
|
|
|
|
|
+ for (int i = 0; i <jsonArray.size() ; i++) {
|
|
|
|
|
+ JSONObject jsonObject2 = JSON.parseObject(StringUtil.nvl(jsonArray.get(i), ""));
|
|
|
|
|
+ Map<Object, Object> map1 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FDeptID")));
|
|
|
|
|
+ Map<Object, Object> map2 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FBillTypeID")));
|
|
|
|
|
+ Map<Object, Object> map3 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FFManagerID")));
|
|
|
|
|
+ Map<Object, Object> map4 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FSManagerID")));
|
|
|
|
|
+ Map<Object, Object> map5 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FBillerID")));
|
|
|
|
|
+ id = baseDao.getSeqId("PRODINOUT_SEQ");
|
|
|
|
|
+ code = baseDao.sGetMaxNumber("ProdInOut!OtherOut", 2);
|
|
|
|
|
+ sqls.add("insert into prodinout (pi_id,pi_inoutno,pi_class,pi_date,pi_statuscode,pi_status,pi_departmentcode,pi_departmentname,pi_emcode,pi_emname,pi_invostatuscode,pi_invostatus,pi_recordman,pi_recorddate,pi_printstatuscode,pi_printstatus,pi_type) " +
|
|
|
|
|
+ "values ("+id+",'"+code+"','其它出库单',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd HH24:mi:ss'),'UNPOST','未过账','"+map1.get("FNumber")+"','"+map1.get("FName")+"','"+map3.get("FNumber")+"','"+map3.get("FName")+"','ENTERING','在录入','"+map5.get("FName")+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd HH24:mi:ss'),'UNPRINT','未打印','"+map2.get("FName")+"')");
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONArray array = data.get("detail");
|
|
|
|
|
+ int detno=1;
|
|
|
|
|
+ for (int i = 0; i <array.size(); i++) {
|
|
|
|
|
+ JSONObject object = JSON.parseObject(StringUtil.nvl(array.get(i), "{}"));
|
|
|
|
|
+ Map<Object, Object> map = JSONUtil.toMap(StringUtil.valueOf(object.get("FItemID")));
|
|
|
|
|
+ String itemNo = StringUtil.nvl(map.get("FNumber"), "");
|
|
|
|
|
+ if ("".equals(itemNo)){
|
|
|
|
|
+ return ApiResponse.failRsp("10031",request.getHeader("RequestId"),"物料不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ String qty = StringUtil.nvl(object.get("FAuxQtyMust"), "");
|
|
|
|
|
+ if ("".equals(qty)){
|
|
|
|
|
+ return ApiResponse.failRsp("10032",request.getHeader("RequestId"),"实出数量数量不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ String fnote = StringUtil.nvl(object.get("Fnote"), "");
|
|
|
|
|
+ Map<Object, Object> map1 = JSONUtil.toMap(StringUtil.valueOf(object.get("FDCStockID1")));
|
|
|
|
|
+ String whcode = StringUtil.nvl(map1.get("FNumber"), "");
|
|
|
|
|
+ String whname = StringUtil.nvl(map1.get("FName"), "");
|
|
|
|
|
+ if ("".equals(whcode)){
|
|
|
|
|
+ return ApiResponse.failRsp("10033",request.getHeader("RequestId"),"仓库编号不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ sqls.add("insert into prodiodetail (pd_id,pd_piid,pd_inoutno,pd_piclass,pd_pdno,pd_prodcode," +
|
|
|
|
|
+ "pd_outqty,pd_whcode,pd_whname,pd_remark) " +
|
|
|
|
|
+ "values (PRODIODETAIL_SEQ.nextval,"+id+",'"+code+"','其它出库单',"+detno+",'"+itemNo+
|
|
|
|
|
+ "',"+qty+",'"+whcode+"','"+whname+"','"+fnote+"')");
|
|
|
|
|
+ detno++;
|
|
|
|
|
+ }
|
|
|
|
|
+ baseDao.execute(sqls);
|
|
|
|
|
+ return ApiResponse.successRsp("0",request.getHeader("RequestId"),"其它出库单:"+code+",请在ERP查看!");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ApiResult<String> prodInOutPicking(HttpServletRequest request) {
|
|
|
|
|
+ Map<String, JSONArray> data = getData(request);
|
|
|
|
|
+ JSONArray jsonArray = data.get("main");
|
|
|
|
|
+ String bccode = null;
|
|
|
|
|
+ int bcpiid = 0;
|
|
|
|
|
+ String llcode = null;
|
|
|
|
|
+ int llpiid=0;
|
|
|
|
|
+ String macode=null;
|
|
|
|
|
+ String llpiclass = "生产领料单", llcaller = "ProdInOut!Picking", bcpiclass = "拨出单", bccaller = "ProdInOut!AppropriationOut";
|
|
|
|
|
+ // 是否生成调拨单,勾选不生成,不勾选默认生成
|
|
|
|
|
+ Boolean notCreateAppropriation = baseDao.isDBSetting("MultiMakeSendLS", "notCreateAppropriation");
|
|
|
|
|
+ List<String> sqls = new ArrayList<>();
|
|
|
|
|
+ for (int i = 0; i <jsonArray.size() ; i++) {
|
|
|
|
|
+ JSONObject jsonObject2 = JSON.parseObject(StringUtil.nvl(jsonArray.get(i), ""));
|
|
|
|
|
+ Map<Object, Object> map1 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FDeptID")));
|
|
|
|
|
+ Map<Object, Object> map2 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FPurposeID")));
|
|
|
|
|
+ Map<Object, Object> map3 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FFManagerID")));
|
|
|
|
|
+ Map<Object, Object> map4 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FSManagerID")));
|
|
|
|
|
+ Map<Object, Object> map5 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FBillerID")));
|
|
|
|
|
+ macode = StringUtil.valueOf(jsonObject2.get("FHeadSelfB0437"));
|
|
|
|
|
+ Object ma_tasktype = baseDao.getFieldDataByCondition("Make", "ma_tasktype", "ma_code in ('" + macode + "')");
|
|
|
|
|
+ if ("OS".equals(ma_tasktype)) {
|
|
|
|
|
+ llpiclass = "委外领料单";
|
|
|
|
|
+ llcaller = "ProdInOut!OutsidePicking";
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!notCreateAppropriation){
|
|
|
|
|
+ //生成拨出单
|
|
|
|
|
+ bcpiid = baseDao.getSeqId("PRODINOUT_SEQ");
|
|
|
|
|
+ bccode = baseDao.sGetMaxNumber(bccaller, 2);
|
|
|
|
|
+ sqls.add("insert into prodinout (pi_id,pi_inoutno,pi_class,pi_date,pi_statuscode,pi_status," +
|
|
|
|
|
+ "pi_departmentcode,pi_departmentname,pi_emcode,pi_emname,pi_invostatuscode,pi_invostatus," +
|
|
|
|
|
+ "pi_recordman,pi_recorddate,pi_printstatuscode,pi_printstatus,pi_type) " +
|
|
|
|
|
+ "values ("+bcpiid+",'"+bccode+"','"+bcpiclass+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd " +
|
|
|
|
|
+ "HH24:mi:ss'),'UNPOST','未过账','"+map1.get("FNumber")+"','"+map1.get("FName")+"','"+map4.get("FNumber")+"','"+map4.get("FName")+"','ENTERING','在录入','"+map5.get("FName")+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd HH24:mi:ss'),'UNPRINT','未打印','库存转移')");
|
|
|
|
|
+ }
|
|
|
|
|
+ //生成生产领料单
|
|
|
|
|
+ llpiid = baseDao.getSeqId("PRODINOUT_SEQ");
|
|
|
|
|
+ llcode = baseDao.sGetMaxNumber(llcaller, 2);
|
|
|
|
|
+ sqls.add("insert into prodinout (pi_id,pi_inoutno,pi_class,pi_date,pi_statuscode,pi_status," +
|
|
|
|
|
+ "pi_departmentcode,pi_departmentname,pi_emcode,pi_emname,pi_invostatuscode,pi_invostatus," +
|
|
|
|
|
+ "pi_recordman,pi_recorddate,pi_printstatuscode,pi_printstatus,pi_type) " +
|
|
|
|
|
+ "values ("+llpiid+",'"+llcode+"','"+llpiclass+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd " +
|
|
|
|
|
+ "HH24:mi:ss'),'UNPOST','未过账','"+map1.get("FNumber")+"','"+map1.get("FName")+"','"+map4.get(
|
|
|
|
|
+ "FNumber")+"','"+map4.get("FName")+"','ENTERING','在录入','"+map5.get("FName")+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd HH24:mi:ss'),'UNPRINT','未打印','"+map2.get("FName")+"')");
|
|
|
|
|
+ // 标示领料单的拨出单号
|
|
|
|
|
+ baseDao.execute("update ProdInOut set pi_fromcode='" + bccode + "' where pi_id=" + llpiid);
|
|
|
|
|
+ }
|
|
|
|
|
+ Object mmwhcode = baseDao.getFieldDataByCondition("MakeMaterial", "min(mm_whcode)", " nvl(mm_whcode,' ')<>' '" + " and mm_code in ('" + macode + "')");
|
|
|
|
|
+ Object mmwhname="";
|
|
|
|
|
+ if (mmwhcode!=null&&!"".equals(mmwhcode.toString())){
|
|
|
|
|
+ mmwhname = baseDao.getFieldDataByCondition("warehouse", "min(wh_description)",
|
|
|
|
|
+ "wh_code in ('" + mmwhcode + "'");
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONArray array = data.get("detail");
|
|
|
|
|
+ int detno=1;
|
|
|
|
|
+ for (int i = 0; i <array.size(); i++) {
|
|
|
|
|
+ JSONObject object = JSON.parseObject(StringUtil.nvl(array.get(i), "{}"));
|
|
|
|
|
+ Map<Object, Object> map = JSONUtil.toMap(StringUtil.valueOf(object.get("FItemID")));
|
|
|
|
|
+ String itemNo = StringUtil.nvl(map.get("FNumber"), "");
|
|
|
|
|
+ if ("".equals(itemNo)){
|
|
|
|
|
+ return ApiResponse.failRsp("10041",request.getHeader("RequestId"),"物料不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ String qty = StringUtil.nvl(object.get("FAuxQty"), "");
|
|
|
|
|
+ if ("".equals(qty)){
|
|
|
|
|
+ return ApiResponse.failRsp("10042",request.getHeader("RequestId"),"实发数量不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<Object, Object> map1 = JSONUtil.toMap(StringUtil.valueOf(object.get("FSCStockID1")));
|
|
|
|
|
+ String whcode = StringUtil.nvl(map1.get("FNumber"), "");
|
|
|
|
|
+ String whname = StringUtil.nvl(map1.get("FName"), "");
|
|
|
|
|
+ if ("".equals(whcode)){
|
|
|
|
|
+ return ApiResponse.failRsp("10043",request.getHeader("RequestId"),"发料仓库不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ String fSourceInterId = StringUtil.nvl(object.get("FSourceInterId"), "");
|
|
|
|
|
+ String ficmoBillNo = StringUtil.nvl(object.get("FICMOBillNo"), "");
|
|
|
|
|
+ Object mmdetno = baseDao.getFieldDataByCondition("MakeMaterial", "mm_detno", "mm_id in (" + fSourceInterId+")");
|
|
|
|
|
+ if(bccode!=null) {
|
|
|
|
|
+ sqls.add("insert into prodiodetail (pd_id,pd_piid,pd_inoutno,pd_piclass,pd_pdno,pd_prodcode," +
|
|
|
|
|
+ "pd_outqty,pd_whcode,pd_whname,pd_inwhcode,pd_inwhname) " +
|
|
|
|
|
+ "values (PRODIODETAIL_SEQ.nextval," + bcpiid + ",'" + bccode + "','"+bcpiclass+"'," + detno + ",'" + itemNo +
|
|
|
|
|
+ "'," + qty + ",'" + mmwhcode + "','" + mmwhname + "','" + whcode + "','" + whname + "')");
|
|
|
|
|
+ }
|
|
|
|
|
+ sqls.add("insert into prodiodetail (pd_id,pd_piid,pd_inoutno,pd_piclass,pd_pdno,pd_prodcode," +
|
|
|
|
|
+ "pd_outqty,pd_whcode,pd_whname,pd_ordercode,pd_orderdetno) " +
|
|
|
|
|
+ "values (PRODIODETAIL_SEQ.nextval," + llpiid + ",'" + llcode + "','"+llpiclass+"'," + detno + ",'" + itemNo +
|
|
|
|
|
+ "'," + qty + ",'" + whcode + "','" + whname + "','"+ficmoBillNo+"',"+mmdetno+")");
|
|
|
|
|
+ detno++;
|
|
|
|
|
+ }
|
|
|
|
|
+ baseDao.execute(sqls);
|
|
|
|
|
+ return ApiResponse.successRsp("0",request.getHeader("RequestId"),"生产领料单:"+llcode+",拨出单:"+bccode+",请在ERP查看!");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ApiResult<String> prodInOutMakeReturn(HttpServletRequest request) {
|
|
|
|
|
+ Map<String, JSONArray> data = getData(request);
|
|
|
|
|
+ JSONArray jsonArray = data.get("main");
|
|
|
|
|
+ int id=0;
|
|
|
|
|
+ String code="";
|
|
|
|
|
+ List<String> sqls = new ArrayList<>();
|
|
|
|
|
+ for (int i = 0; i <jsonArray.size() ; i++) {
|
|
|
|
|
+ Object obj = jsonArray.get(i);
|
|
|
|
|
+ JSONObject jsonObject2 = JSON.parseObject(StringUtil.nvl(obj, ""));
|
|
|
|
|
+ Map<Object, Object> map1 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FDeptID")));
|
|
|
|
|
+ Map<Object, Object> map2 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FPurposeID")));
|
|
|
|
|
+ Map<Object, Object> map3 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FFManagerID")));
|
|
|
|
|
+ Map<Object, Object> map4 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FSManagerID")));
|
|
|
|
|
+ Map<Object, Object> map5 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FBillerID")));
|
|
|
|
|
+ id = baseDao.getSeqId("PRODINOUT_SEQ");
|
|
|
|
|
+ code = baseDao.sGetMaxNumber("ProdInOut!Make!Return", 2);
|
|
|
|
|
+ sqls.add("insert into prodinout (pi_id,pi_inoutno,pi_class,pi_date,pi_statuscode,pi_status,pi_departmentcode,pi_departmentname,pi_emcode,pi_emname,pi_invostatuscode,pi_invostatus,pi_recordman,pi_recorddate,pi_printstatuscode,pi_printstatus) " +
|
|
|
|
|
+ "values ("+id+",'"+code+"','生产退料单',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd HH24:mi:ss'),'UNPOST','未过账','"+map1.get("FNumber")+"','"+map1.get("FName")+"','"+map4.get("FNumber")+"','"+map4.get("FName")+"','ENTERING','在录入','"+map5.get("FName")+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd HH24:mi:ss'),'UNPRINT','未打印')");
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONArray array = data.get("detail");
|
|
|
|
|
+ int detno=1;
|
|
|
|
|
+ for (int i = 0; i <array.size(); i++) {
|
|
|
|
|
+ JSONObject object = JSON.parseObject(StringUtil.nvl(array.get(i), "{}"));
|
|
|
|
|
+ Map<Object, Object> map = JSONUtil.toMap(StringUtil.valueOf(object.get("FItemID")));
|
|
|
|
|
+ String itemNo = StringUtil.nvl(map.get("FNumber"), "");
|
|
|
|
|
+ if ("".equals(itemNo)){
|
|
|
|
|
+ return ApiResponse.failRsp("10051",request.getHeader("RequestId"),"物料不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ String qty = StringUtil.nvl(object.get("FAuxQty"), "");
|
|
|
|
|
+ if ("".equals(qty)){
|
|
|
|
|
+ return ApiResponse.failRsp("10052",request.getHeader("RequestId"),"实发数量不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ String fnote = StringUtil.nvl(object.get("Fnote"), "");
|
|
|
|
|
+ Map<Object, Object> map1 = JSONUtil.toMap(StringUtil.valueOf(object.get("FSCStockID1")));
|
|
|
|
|
+ String whcode = StringUtil.nvl(map1.get("FNumber"), "");
|
|
|
|
|
+ String whname = StringUtil.nvl(map1.get("FName"), "");
|
|
|
|
|
+ if ("".equals(whcode)){
|
|
|
|
|
+ return ApiResponse.failRsp("10053",request.getHeader("RequestId"),"仓库编号不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ String ficmoBillNo = StringUtil.nvl(object.get("FICMOBillNo"), "");
|
|
|
|
|
+ String fBatchNo = StringUtil.nvl(object.get("FBatchNo"), "");
|
|
|
|
|
+
|
|
|
|
|
+ sqls.add("insert into prodiodetail (pd_id,pd_piid,pd_inoutno,pd_piclass,pd_pdno,pd_prodcode," +
|
|
|
|
|
+ "pd_inqty,pd_whcode,pd_whname,pd_remark,pd_batchcode,pd_ordercode) " +
|
|
|
|
|
+ "values (PRODIODETAIL_SEQ.nextval,"+id+",'"+code+"','生产退料单',"+detno+",'"+itemNo+
|
|
|
|
|
+ "',"+qty+",'"+whcode+"','"+whname+"','"+fnote+"','"+fBatchNo+"','"+ficmoBillNo+"')");
|
|
|
|
|
+ detno++;
|
|
|
|
|
+ }
|
|
|
|
|
+ baseDao.execute(sqls);
|
|
|
|
|
+ return ApiResponse.successRsp("0",request.getHeader("RequestId"),"生产退料单:"+code+",请在ERP查看!");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ApiResult<String> prodInOutAppropriationOut(HttpServletRequest request) {
|
|
|
|
|
+ Map<String, JSONArray> data = getData(request);
|
|
|
|
|
+ JSONArray jsonArray = data.get("main");
|
|
|
|
|
+ int id=0;
|
|
|
|
|
+ String code="";
|
|
|
|
|
+ List<String> sqls = new ArrayList<>();
|
|
|
|
|
+ for (int i = 0; i <jsonArray.size() ; i++) {
|
|
|
|
|
+ JSONObject jsonObject2 = JSON.parseObject(StringUtil.nvl(jsonArray.get(i), ""));
|
|
|
|
|
+ Map<Object, Object> map1 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FDeptID")));
|
|
|
|
|
+ Map<Object, Object> map2 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FRefType")));
|
|
|
|
|
+ Map<Object, Object> map3 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FFManagerID")));
|
|
|
|
|
+ Map<Object, Object> map4 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FSManagerID")));
|
|
|
|
|
+ Map<Object, Object> map5 = JSONUtil.toMap(StringUtil.valueOf(jsonObject2.get("FBillerID")));
|
|
|
|
|
+ id = baseDao.getSeqId("PRODINOUT_SEQ");
|
|
|
|
|
+ code = baseDao.sGetMaxNumber("ProdInOut!AppropriationOut", 2);
|
|
|
|
|
+ sqls.add("insert into prodinout (pi_id,pi_inoutno,pi_class,pi_date,pi_statuscode,pi_status," +
|
|
|
|
|
+ "pi_departmentcode,pi_departmentname,pi_emcode,pi_emname,pi_invostatuscode,pi_invostatus," +
|
|
|
|
|
+ "pi_recordman,pi_recorddate,pi_printstatuscode,pi_printstatus,pi_type,pi_inoutman) " +
|
|
|
|
|
+ "values ("+id+",'"+code+"','拨出单',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd HH24:mi:ss')," +
|
|
|
|
|
+ "'UNPOST','未过账','"+map1.get("FNumber")+"','"+map1.get("FName")+"','"+map4.get("FNumber")+"','"+map4.get("FName")+"','ENTERING','在录入','"+map5.get("FName")+"',to_date('"+jsonObject2.get("Fdate")+"','yyyy/MM/dd HH24:mi:ss'),'UNPRINT','未打印','"+map2.get("FName")+"','"+map3.get("FName")+"')");
|
|
|
|
|
+ }
|
|
|
|
|
+ JSONArray array = data.get("detail");
|
|
|
|
|
+ int detno=1;
|
|
|
|
|
+ for (int i = 0; i <array.size(); i++) {
|
|
|
|
|
+ JSONObject object = JSON.parseObject(StringUtil.nvl(array.get(i), "{}"));
|
|
|
|
|
+ Map<Object, Object> map = JSONUtil.toMap(StringUtil.valueOf(object.get("FItemID")));
|
|
|
|
|
+ String itemNo = StringUtil.nvl(map.get("FNumber"), "");
|
|
|
|
|
+ if ("".equals(itemNo)){
|
|
|
|
|
+ return ApiResponse.failRsp("10061",request.getHeader("RequestId"),"物料不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ String qty = StringUtil.nvl(object.get("Fauxqty"), "");
|
|
|
|
|
+ if ("".equals(qty)){
|
|
|
|
|
+ return ApiResponse.failRsp("10062",request.getHeader("RequestId"),"实转数量不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<Object, Object> map1 = JSONUtil.toMap(StringUtil.valueOf(object.get("FSCStockID1")));
|
|
|
|
|
+ String whcode = StringUtil.nvl(map1.get("FNumber"), "");
|
|
|
|
|
+ String whname = StringUtil.nvl(map1.get("FName"), "");
|
|
|
|
|
+ if ("".equals(whcode)){
|
|
|
|
|
+ return ApiResponse.failRsp("10063",request.getHeader("RequestId"),"发货仓库不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<Object, Object> map2 = JSONUtil.toMap(StringUtil.valueOf(object.get("FDCStockID1")));
|
|
|
|
|
+ String whcode2 = StringUtil.nvl(map2.get("FNumber"), "");
|
|
|
|
|
+ String whname2 = StringUtil.nvl(map2.get("FName"), "");
|
|
|
|
|
+ if ("".equals(whcode2)){
|
|
|
|
|
+ return ApiResponse.failRsp("10064",request.getHeader("RequestId"),"收货仓库不能为空!");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ sqls.add("insert into prodiodetail (pd_id,pd_piid,pd_inoutno,pd_piclass,pd_pdno,pd_prodcode," +
|
|
|
|
|
+ "pd_outqty,pd_whcode,pd_whname,pd_inwhcode,pd_inwhname) " +
|
|
|
|
|
+ "values (PRODIODETAIL_SEQ.nextval,"+id+",'"+code+"','拨出单',"+detno+",'"+itemNo+
|
|
|
|
|
+ "',"+qty+",'"+whcode+"','"+whname+"','"+whcode2+"','"+whname2+"')");
|
|
|
|
|
+ detno++;
|
|
|
|
|
+ }
|
|
|
|
|
+ baseDao.execute(sqls);
|
|
|
|
|
+ return ApiResponse.successRsp("0",request.getHeader("RequestId"),"生产拨出单:"+code+",请在ERP查看!");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private Map<String, JSONArray> getData(HttpServletRequest request){
|
|
|
|
|
+ Map<String, JSONArray> map = new HashMap<>();
|
|
|
|
|
+ try {
|
|
|
|
|
+ String data = PSHttpUtils.readRaw(request.getInputStream());
|
|
|
|
|
+ JSONObject jsonObject = JSON.parseObject(data);
|
|
|
|
|
+ Object data1 = jsonObject.get("Data");
|
|
|
|
|
+ JSONObject jsonObject1 = JSON.parseObject(StringUtil.nvl(data1,""));
|
|
|
|
|
+ Object page1 = jsonObject1.get("Page1");
|
|
|
|
|
+ Object page2 = jsonObject1.get("Page2");
|
|
|
|
|
+ JSONArray jsonArray = JSON.parseArray(StringUtil.nvl(page1, ""));
|
|
|
|
|
+ map.put("main",jsonArray);
|
|
|
|
|
+ JSONArray jsonArray1 = JSON.parseArray(StringUtil.nvl(page2, ""));
|
|
|
|
|
+ map.put("detail",jsonArray1);
|
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ return map;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|