fix:修改拆分
This commit is contained in:
parent
e860f248fe
commit
8e12d3400b
@ -117,7 +117,7 @@ public class MESServiceImpl implements MESService{
|
||||
//根据单据获取要发送MES的信息
|
||||
String sql="SELECT * from(\r\n" +
|
||||
" SELECT m.CHARGE,m.MATERIALPACKINGNAME,m.MATERIALSPECNAME,to_char(m.EXPIRINGDATE,'YYYY-MM-DD HH24:MI')EXPIRINGDATE,m.PHASE, \r\n" +
|
||||
" m.TRUEGG ,m.FQTY ,m.FUNIT ,m.GXID,m.LASTEVENTUSER ,m.REMARK , m3.SHIPREQUESTTYPE, \r\n" +
|
||||
" m.TRUEGG ,m.SDK_ID,m.FQTY ,m.FUNIT ,m.GXID,m.LASTEVENTUSER ,m.REMARK , m3.SHIPREQUESTTYPE, \r\n" +
|
||||
" m3.SHIPREQUESTDETAILTYPE ,m2.MATERIALUNIT ,bm.DENOMINATOR/bm.MODULECULE CONVERSIONSCALE, \r\n" +
|
||||
" m4.DESCRIPTION ,m2.MATERIALTYPE ,(SELECT RECEIVEPRODUCTIONORDERNUMBER FROM MATERIALSHIPREQUESTDETAIL m5 \r\n" +
|
||||
" WHERE m5.SHIPREQUESTNAME=:SHIPREQUESTNAME AND m5.MATERIALSPECNAME=m.MATERIALSPECNAME \r\n" +
|
||||
@ -590,7 +590,7 @@ public class MESServiceImpl implements MESService{
|
||||
jsonObject.put("expiringDate", list.get(i).get("EXPIRINGDATE"));
|
||||
jsonObject.put("productName", list.get(i).get("DESCRIPTION"));
|
||||
jsonObject.put("productStage", list.get(i).get("PHASE"));
|
||||
jsonObject.put("practicalSpec", list.get(i).get("TRUEGG") == null ? "" : list.get(i).get("TRUEGG").toString());
|
||||
jsonObject.put("practicalSpec", list.get(i).get("TRUEGG") == null ? list.get(i).get("SDK_ID") : list.get(i).get("TRUEGG").toString());
|
||||
jsonObject.put("productQuantity", list.get(i).get("MATERIALQUANTITY"));
|
||||
jsonObject.put("productQuantityUnit", list.get(i).get("MATERIALUNIT"));
|
||||
jsonObject.put("auxiliaryUnit", list.get(i).get("FUNIT"));
|
||||
|
@ -0,0 +1,683 @@
|
||||
package com.cim.idm.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.TypeReference;
|
||||
import com.cim.idm.framework.IDMFrameServiceProxy;
|
||||
import com.cim.idm.framework.data.EventInfo;
|
||||
import com.cim.idm.framework.util.time.TimeStampUtil;
|
||||
import com.cim.idm.model.BaseEntity;
|
||||
import com.cim.idm.model.ErpMessageLog;
|
||||
import com.cim.idm.model.MaterialPacking;
|
||||
import com.cim.idm.model.PalletDto;
|
||||
import com.cim.idm.utils.AjaxResult;
|
||||
import com.cim.idm.utils.CommonUtils;
|
||||
import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
|
||||
import com.cim.idm.wmsextend.generic.util.ConvertUtil;
|
||||
import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy;
|
||||
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey;
|
||||
import com.cim.idm.wmspackage.materialpacking.management.info.CreateInfo;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/wms")
|
||||
@EnableAutoConfiguration
|
||||
public class PalletStockInAndOutController {
|
||||
|
||||
@Autowired
|
||||
private com.cim.idm.service.Impl.ProductIntoServiceImpl ProductIntoServiceImpl;
|
||||
|
||||
@Autowired
|
||||
private com.cim.idm.service.Impl.InvoiceServiceImpl InvoiceServiceImpl;
|
||||
|
||||
CommonUtils untils=new CommonUtils();
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(PalletStockInAndOutController.class);
|
||||
@RequestMapping(value = "/syncMesData", method = RequestMethod.POST)
|
||||
public AjaxResult syncMesData(@RequestBody JSONObject in) {
|
||||
log.debug("***********************************");
|
||||
log.debug("***********************************");
|
||||
log.debug(in.toString());
|
||||
log.debug("***********************************");
|
||||
log.debug("***********************************");
|
||||
AjaxResult result = new AjaxResult();
|
||||
ErpMessageLog loginfo = new ErpMessageLog();
|
||||
loginfo.setServerName("MesToWms");
|
||||
loginfo.setMessageId("");
|
||||
|
||||
loginfo.setEventUser(in.getString("user"));
|
||||
loginfo.setId(UUID.randomUUID().toString());
|
||||
loginfo.setInterfaceTime(ConvertUtil.getCurrTime("yyy-MM-dd HH:mm:ss"));
|
||||
loginfo.setSendMsg(in.toJSONString());
|
||||
try {
|
||||
String messagetype = in.get("messagetype").toString();
|
||||
loginfo.setEventName(String.format("%s", messagetype));
|
||||
switch (messagetype) {
|
||||
case "STOCKINPALLET" : // 托盘入库
|
||||
BaseEntity<PalletDto> PalletInDto = JSONObject.parseObject(in.toJSONString(),
|
||||
new TypeReference<BaseEntity<PalletDto>>() {
|
||||
});
|
||||
stockInPallet(PalletInDto);
|
||||
break;
|
||||
case "STOCKOUTPALLET" : // 托盘出库
|
||||
BaseEntity<PalletDto> PalletOutDto = JSONObject.parseObject(in.toJSONString(),
|
||||
new TypeReference<BaseEntity<PalletDto>>() {
|
||||
});
|
||||
stockOutPallet(PalletOutDto);
|
||||
break;
|
||||
default :
|
||||
break;
|
||||
}
|
||||
result = AjaxResult.me().setSuccess(true).setMessage("执行成功");
|
||||
loginfo.setResultCode("success");
|
||||
loginfo.setReturnMsg(JSONObject.toJSONString(result));
|
||||
// 消息保存日志,Mes推送wms的数据写入表BS_ERPMESSAGELOG中
|
||||
saveMessageLog(loginfo);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
result = AjaxResult.me().setSuccess(false).setErrorCode(500).setMessage(e.getMessage());
|
||||
loginfo.setResultCode("fail");
|
||||
loginfo.setReturnMsg(JSONObject.toJSONString(result));
|
||||
saveMessageLog(loginfo);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 托盘入库
|
||||
* @param PalletDto
|
||||
* @throws Exception
|
||||
*/
|
||||
private void stockInPallet(BaseEntity<PalletDto> PalletDto) throws Exception {
|
||||
try {
|
||||
// String commitDate = PalletDto.getTime();
|
||||
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||
Date datea = null;
|
||||
datea = inputFormat.parse(PalletDto.getTime());
|
||||
String commitDate = outputFormat.format(datea);
|
||||
|
||||
for (PalletDto palletDto : PalletDto.getBody()) {
|
||||
String palletname = palletDto.getPALLETNAME();//栈板
|
||||
String materialspecname = palletDto.getMATERIALSPECNAME();//料号
|
||||
String erpfactory = palletDto.getERPFACTORY();//组织
|
||||
String erplocation = palletDto.getERPLOCATION();//仓库
|
||||
String locationname = palletDto.getLOCATIONNAME();//货位
|
||||
String oqaresult = palletDto.getOQARESULT();//质检结果
|
||||
String indate = palletDto.getINDATE();//入库日期
|
||||
String phase = palletDto.getPHASE();//阶段
|
||||
String planorder = palletDto.getPLANORDER();//投放计划
|
||||
String productorder = palletDto.getPRODUCTORDER();//生产订单
|
||||
String receiverequestname = palletDto.getRECEIVEREQUESTNAME();//完工报告
|
||||
String remark = palletDto.getREMARK();//备注
|
||||
String sdk_ID = palletDto.getSDK_ID();//SDK规格
|
||||
String shiprequestdetailname = palletDto.getSHIPREQUESTDETAILNAME();//发货单行号
|
||||
String shiprequestname = palletDto.getSHIPREQUESTNAME();//发货单
|
||||
// String user = palletDto.getUSER();//作业人
|
||||
// String opCode = palletDto.getOpCode();
|
||||
String ReceiveRequestActNo = null;
|
||||
List<MaterialPacking> detail = palletDto.getDetail();
|
||||
|
||||
|
||||
|
||||
String opCode = palletDto.getOpCode() == null ? "" : palletDto.getOpCode().toString();
|
||||
String user = palletDto.getUSER() == null ? "" : palletDto.getUSER().toString();
|
||||
if ("".equals(opCode) || opCode == null) {
|
||||
String sql = "SELECT :USER || '-' || NCDATA_IDX.NEXTVAL ID FROM DUAL";
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("USER", user);
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
opCode = queryForList.get(0).get("ID").toString();
|
||||
}
|
||||
|
||||
List<com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking> mpkeyList = new ArrayList<com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking> ();
|
||||
for (MaterialPacking materialPacking : detail) {
|
||||
|
||||
untils.IsAtMaterialPacking(materialPacking.getMaterialPackingName(),erpfactory,erplocation,locationname,materialspecname);
|
||||
|
||||
com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking materialPacking2 = new com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking();
|
||||
materialPacking2.setKey(new MaterialPackingKey("SDK",materialPacking.getMaterialPackingName()));
|
||||
materialPacking2.setErpFactory(erpfactory);
|
||||
materialPacking2.setErpLocation(erplocation);
|
||||
materialPacking2.setLocationName(locationname);
|
||||
// materialPacking2.setMaterialSpecName(materialspecname);
|
||||
materialPacking2.setMaterialPackingName(materialPacking.getMaterialPackingName());
|
||||
mpkeyList.add(materialPacking2);
|
||||
}
|
||||
|
||||
//List<com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking> selectByKey = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(mpkeyList);
|
||||
|
||||
// List<com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking> detail = palletDto.getDetail();
|
||||
ProductIntoServiceImpl.fgStockInNew(mpkeyList, user, ReceiveRequestActNo, commitDate, opCode);
|
||||
|
||||
// java.util.Calendar c = java.util.Calendar.getInstance();
|
||||
// java.text.SimpleDateFormat f = new java.text.SimpleDateFormat(
|
||||
// "yyyyMMdd");
|
||||
//
|
||||
// List<String> args = new ArrayList<String>();
|
||||
// String actType1 = "F";
|
||||
// String siteName = "SH";
|
||||
// args.add(siteName);
|
||||
// args.add(actType1);
|
||||
// args.add(f.format(c.getTime()));
|
||||
// String ReceiveRequestActNo;
|
||||
//
|
||||
// ReceiveRequestActNo = NameServiceProxy.getNameRuleDefService()
|
||||
// .generateName("ReceiveActNo", args, 1).get(0);
|
||||
//
|
||||
// String pc = "(";
|
||||
// for (MaterialPacking materialPacking : detail) {
|
||||
//// "MATERIALPACKINGNAME": "箱标签",
|
||||
//// "CHARGE": "箱批次",
|
||||
//// "MATERIALQUANTITY": "数量",
|
||||
//// "UNIT": "单位",
|
||||
//// "OQARESULT" : "品质结果"
|
||||
// String materialPackingName = materialPacking.getMaterialPackingName();
|
||||
// String charge = materialPacking.getCharge();
|
||||
// String materialQuantity = materialPacking.getMaterialQuantity();
|
||||
// String unit = materialPacking.getUnit();
|
||||
// String oqaResult2 = materialPacking.getOqaResult();
|
||||
//
|
||||
// String salesPerson = materialPacking.getSalesPerson(); // 业务
|
||||
// String career_assistance = materialPacking.getCareer_assistance();
|
||||
// String business_unit = materialPacking.getBusiness_unit();
|
||||
// String durableType = materialPacking.getDurableType();
|
||||
//
|
||||
// pc += "'" + materialPackingName + "', ";
|
||||
//
|
||||
// //根据入库信息获取完工报告
|
||||
// String sql3 = "SELECT\r\n" +
|
||||
// " M.RECEIVEREQUESTNAME,\r\n" +
|
||||
// " M.RECEIVEREQUESTDETAILNAME\r\n" +
|
||||
// "FROM\r\n" +
|
||||
// " MATERIALRECEIVEREQUESTDETAIL M\r\n" +
|
||||
// "WHERE\r\n" +
|
||||
// " (M.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME OR M.PRODUCTORDER = :RECEIVEREQUESTNAME OR M.PLANORDER = :RECEIVEREQUESTNAME)\r\n" +
|
||||
// " AND M.MATERIALSPECNAME = :MATERIALSPECNAME ";
|
||||
// Map<String, Object> bindMap = new HashMap<String, Object>();
|
||||
// bindMap.put("RECEIVEREQUESTNAME",receiverequestname);
|
||||
// bindMap.put("MATERIALSPECNAME",materialspecname);
|
||||
// List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql3, bindMap);
|
||||
// if (queryForList == null || queryForList.size() < 1) {
|
||||
// throw new GlobalException("生产报告未完成,请联系IT处理!");
|
||||
// }
|
||||
// EventInfo makeEventInfo = new EventInfoUtil().makeEventInfo("createfgBoxInfo", user, "createfgBoxInfo", "", "");
|
||||
//// try {
|
||||
//// ProductIntoServiceImpl.CreateMaterialReceiveRequestAct
|
||||
//// (makeEventInfo, "SDK", queryForList.get(0).get("RECEIVEREQUESTNAME").toString(),
|
||||
//// queryForList.get(0).get("RECEIVEREQUESTDETAILNAME").toString(), indate,
|
||||
//// ReceiveRequestActNo, "Normal", materialQuantity, materialspecname);
|
||||
//// } catch (CustomException | ParseException e) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e.printStackTrace();
|
||||
//// throw new GlobalException(e.toString());
|
||||
//// }
|
||||
//
|
||||
// receivePalletStockIn(makeEventInfo, "SDK", materialPackingName, charge,materialQuantity,sdk_ID,remark,materialspecname,"",user,
|
||||
// palletname, ReceiveRequestActNo, oqaresult,phase,unit,indate,erplocation, erpfactory, locationname,queryForList.get(0).get("RECEIVEREQUESTNAME").toString(), queryForList.get(0).get("RECEIVEREQUESTDETAILNAME").toString(),
|
||||
// salesPerson,career_assistance,business_unit,durableType);
|
||||
//
|
||||
// }
|
||||
// pc += "'')";
|
||||
//
|
||||
//// boolean fgStockIn = ProductIntoServiceImpl.fgStockIn(ReceiveRequestActNo, user,commitDate);
|
||||
// boolean fgStockIn = ProductIntoServiceImpl.fgStockIn(pc, user,commitDate,opCode);
|
||||
// if (!fgStockIn) {
|
||||
// throw new GlobalException("报送ERP失败,请联系IT处理!");
|
||||
// }
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static boolean receivePalletStockIn(EventInfo eventInfo,String siteName,String materialPackingName,String Charge,String qty,
|
||||
String sdk_ID,String remark,String materilSpecName,
|
||||
String durableName,String user,String palletName,String receiveActNo,String oqaresult,String phase,String unit,String indate,
|
||||
String erpLocation,String erpFactory,String locationName,String receiveRequestName, String receiveRequestDetailName,
|
||||
String salesPerson,String career_assistance,String business_unit,String durableType) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT * FROM MATERIALPACKING WHERE MATERIALPACKINGNAME = :MATERIALPACKINGNAME");
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("MATERIALPACKINGNAME", materialPackingName);
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql.toString(), hashMap);
|
||||
if(queryForList != null && queryForList.size() > 1) {
|
||||
new CustomException("批次已入库");
|
||||
}
|
||||
|
||||
//入库信息存入库存表
|
||||
CreateInfo createInfo = new CreateInfo();
|
||||
createInfo.setSiteName(siteName);
|
||||
createInfo.setMaterialPackingName(materialPackingName);// 新生成的box id
|
||||
createInfo.setMaterialPackingType("Box");
|
||||
createInfo.setContentMaterialType("");
|
||||
|
||||
Map<String, Object> bindMap = new HashMap<String, Object>();
|
||||
bindMap.put("superMaterialPackingName", palletName);
|
||||
bindMap.put("MaterialType", "");
|
||||
bindMap.put("MaterialSpecName", materilSpecName);
|
||||
if ("".equals(oqaresult) || oqaresult == null) {
|
||||
bindMap.put("oqaResultState", "");
|
||||
} else {
|
||||
bindMap.put("oqaResultState", "END");
|
||||
}
|
||||
bindMap.put("oqaResult", oqaresult);
|
||||
bindMap.put("PackingGrade", oqaresult);
|
||||
bindMap.put("SubPackingQuantity",qty);
|
||||
bindMap.put("MaterialCreateQuantity",qty);
|
||||
bindMap.put("MaterialQuantity", qty);// 数量
|
||||
bindMap.put("PackingState", "Released");
|
||||
bindMap.put("OldPackingState", "Released");
|
||||
bindMap.put("StockState", "Created");
|
||||
bindMap.put("OldStockState", "Created");
|
||||
bindMap.put("HoldState", "N");
|
||||
bindMap.put("AreaName", "");
|
||||
bindMap.put("unit", unit);
|
||||
bindMap.put("LocationName", locationName);
|
||||
bindMap.put("charge",Charge);
|
||||
bindMap.put("DurableName", durableName);
|
||||
bindMap.put("MaterialProcessGroupName","");
|
||||
bindMap.put("LastEventTimeKey",TimeStampUtil.getCurrentEventTimeKey());
|
||||
bindMap.put("ReceiveRequestName", receiveRequestName);
|
||||
bindMap.put("ReceiveRequestDetailName",receiveRequestDetailName);
|
||||
bindMap.put("MakeDate", indate);
|
||||
// bindMap.put("expiringDate", getExpridate(queryForList.get(0).get("SHIPTIME").toString(), queryForList.get(0).get("MATERIALSPECNAME").toString()));
|
||||
bindMap.put("expiringDate", getExpridate(indate, materilSpecName));
|
||||
bindMap.put("ReceiveTime", eventInfo.getEventTime());
|
||||
bindMap.put("ReceiveUser", eventInfo.getEventUser());
|
||||
bindMap.put("ShipTime",indate);
|
||||
bindMap.put("ShipUser",user);
|
||||
bindMap.put("ErpLocation", erpLocation);
|
||||
bindMap.put("ErpFactory", erpFactory);
|
||||
bindMap.put("receiveActNo", receiveActNo);
|
||||
bindMap.put("locationName", locationName);
|
||||
bindMap.put("StockInType", "Normal");
|
||||
bindMap.put("SDK_ID", sdk_ID);
|
||||
bindMap.put("PHASE", phase);
|
||||
|
||||
bindMap.put("salesPerson", salesPerson);
|
||||
bindMap.put("career_assistance", career_assistance);
|
||||
bindMap.put("business_unit", business_unit);
|
||||
bindMap.put("durableType", durableType);
|
||||
|
||||
createInfo.setUserColumns(bindMap);
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().create(
|
||||
eventInfo, createInfo);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static String getExpridate(String makeDate,String materialSpecName) {
|
||||
String sql = "SELECT NVL(T.EXPIRATIONDAY,180) + TO_TIMESTAMP(SUBSTR(:MAKEDATE,0,19),'YYYY-MM-DD HH24:MI:SS') EXP FROM MATERIALSPEC T WHERE T.MATERIALSPECNAME = :MATERIALSPECNAME";
|
||||
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("MATERIALSPECNAME", materialSpecName);
|
||||
hashMap.put("MAKEDATE", makeDate);
|
||||
List<Map<String,Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
|
||||
if (queryForList != null && queryForList.size() > 0) {
|
||||
return queryForList.get(0).get("EXP").toString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
/**
|
||||
* 托盘出库
|
||||
* @param PalletDto
|
||||
* @throws Exception
|
||||
*/
|
||||
private void stockOutPallet(BaseEntity<PalletDto> PalletDto) throws Exception {
|
||||
try {
|
||||
|
||||
String commitDate = PalletDto.getTime();
|
||||
String shipRequestName = "";
|
||||
String opCode = "";
|
||||
String user = "";
|
||||
List<com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking> list = new ArrayList<> ();
|
||||
for (PalletDto palletDto : PalletDto.getBody()) {
|
||||
String palletname = palletDto.getPALLETNAME();//栈板
|
||||
String materialspecname = palletDto.getMATERIALSPECNAME();//料号
|
||||
String erpfactory = palletDto.getERPFACTORY();//组织
|
||||
String erplocation = palletDto.getERPLOCATION();//仓库
|
||||
String locationname = palletDto.getLOCATIONNAME();//货位
|
||||
String oqaresult = palletDto.getOQARESULT();//质检结果
|
||||
String indate = palletDto.getINDATE();//入库日期
|
||||
String phase = palletDto.getPHASE() == null ? "" : palletDto.getPHASE();//阶段
|
||||
// String planorder = palletDto.getPLANORDER();//投放计划
|
||||
// String productorder = palletDto.getPRODUCTORDER();//生产订单
|
||||
// String receiverequestname = palletDto.getRECEIVEREQUESTNAME();//完工报告
|
||||
String remark = palletDto.getREMARK();//备注
|
||||
String sdk_ID = (palletDto.getSDK_ID() == null || "~".equals(palletDto.getSDK_ID().toString())) ? "" : palletDto.getSDK_ID().toString(); //SDK规格
|
||||
|
||||
String shiprequestdetailname = palletDto.getSHIPREQUESTDETAILNAME();//发货单行号
|
||||
shipRequestName = palletDto.getSHIPREQUESTNAME();//发货单
|
||||
// String user = palletDto.getUSER();//作业人
|
||||
// String opCode = palletDto.getOpCode() == null ? "" : palletDto.getOpCode();
|
||||
|
||||
opCode = palletDto.getOpCode() == null ? "" : palletDto.getOpCode().toString();
|
||||
user = palletDto.getUSER() == null ? "" : palletDto.getUSER().toString();
|
||||
if ("".equals(opCode) || opCode == null) {
|
||||
String sql = "SELECT :USER || '-' || NCDATA_IDX.NEXTVAL ID FROM DUAL";
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("USER", user);
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
opCode = queryForList.get(0).get("ID").toString();
|
||||
}
|
||||
|
||||
List<MaterialPacking> detail = palletDto.getDetail();
|
||||
|
||||
for (MaterialPacking materialPacking : detail) {
|
||||
// "MATERIALPACKINGNAME": "箱标签",
|
||||
// "CHARGE": "箱批次",
|
||||
// "MATERIALQUANTITY": "数量",
|
||||
// "UNIT": "单位",
|
||||
// "OQARESULT" : "品质结果"
|
||||
String materialPackingName = materialPacking.getMaterialPackingName();
|
||||
com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking selectByKey = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(new MaterialPackingKey("SDK", materialPackingName));
|
||||
|
||||
if(selectByKey == null) {
|
||||
throw new CustomException("找不到出库单据里的条码" + materialPackingName);
|
||||
}
|
||||
Double fgetMaterialQuantity = Double.parseDouble(materialPacking.getMaterialQuantity());
|
||||
selectByKey.setMaterialQuantity2(fgetMaterialQuantity);
|
||||
list.add(selectByKey);
|
||||
|
||||
String charge = materialPacking.getCharge();
|
||||
String unit = materialPacking.getUnit();
|
||||
String oqaResult2 = materialPacking.getOqaResult();
|
||||
String materialQuantity = materialPacking.getMaterialQuantity();
|
||||
String materialQuantity2 = materialQuantity;
|
||||
String salesPerson = materialPacking.getSalesPerson(); // 业务
|
||||
String career_assistance = materialPacking.getCareer_assistance();
|
||||
String business_unit = materialPacking.getBusiness_unit();
|
||||
String durableType = materialPacking.getDurableType();
|
||||
|
||||
stockOutPalletDessignOrAssign(materialPackingName,materialspecname,shipRequestName,materialQuantity,materialQuantity2,sdk_ID,phase,user);
|
||||
}
|
||||
|
||||
String shipRequestType;
|
||||
String sql = "SELECT m.SHIPREQUESTTYPE FROM MATERIALSHIPREQUEST m WHERE m.SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("SHIPREQUESTNAME", shipRequestName);
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
if (queryForList != null && queryForList.size() > 0) {
|
||||
String type = queryForList.get(0).get("SHIPREQUESTTYPE").toString();
|
||||
shipRequestType = type;
|
||||
} else {
|
||||
throw new CustomException("找不到出库单据" + shipRequestName);
|
||||
}
|
||||
|
||||
// if ("4Y".equals(shipRequestType)) {
|
||||
// String ncSql = "SELECT\r\n" +
|
||||
// " NCDATA_IDX.NEXTVAL ID,\r\n" +
|
||||
// " '' PrintBatch,\r\n" +
|
||||
// " m.MATERIALPACKINGNAME Barcode,\r\n" +
|
||||
// " 'transOut' PrintType,\r\n" +
|
||||
// " m.shiprequestname SourceOrder,\r\n" +
|
||||
// " T.BILLPK SourceOrderId,\r\n" +
|
||||
// " T.DATAPK SourceAutoid, \r\n" +
|
||||
// " T.PK_ORG OrgCode,\r\n" +
|
||||
// " T.PK_MATE MaterialId,\r\n" +
|
||||
// " T.INVCODE MaterialCode,\r\n" +
|
||||
// " T.PK_STAGE StageId,\r\n" +
|
||||
// " T.INVSTAGE StageCode,\r\n" +
|
||||
// " T.BillCode WorkPlant,\r\n" +
|
||||
// " '' WorkShop,\r\n" +
|
||||
// " '' WorkShift,\r\n" +
|
||||
// " '' Machine,\r\n" +
|
||||
// " '' VolNumber,\r\n" +
|
||||
// " '' SupCode,\r\n" +
|
||||
// " '' CustomerCode,\r\n" +
|
||||
// " '' SupBarcode,\r\n" +
|
||||
// " '' CusBarcode,\r\n" +
|
||||
// " T.INVNAME MaterialName,\r\n" +
|
||||
// " T.MATERIALSPEC Specifications,\r\n" +
|
||||
// " T.PK_SIZE SDKSpecificationsId,\r\n" +
|
||||
// " T.INVSIZE SDKSpecifications,\r\n" +
|
||||
// " M.CHARGE Batch,\r\n" +
|
||||
// " '' JumboRollBatch,\r\n" +
|
||||
// " m.MAKEDATE BatchDate,\r\n" +
|
||||
// " SYSDATE PrintBatchDate,\r\n" +
|
||||
// " m.MAKEDATE ProductDate,\r\n" +
|
||||
// " m.EXPIRINGDATE ExpiryDate,\r\n" +
|
||||
// " T.UNAME MainUom,\r\n" +
|
||||
// " DECODE(m.MATERIALQUANTITY2,0, m.MATERIALQUANTITY,m.MATERIALQUANTITY2) MainQty,\r\n" +
|
||||
// " m.FUNIT AssistUom,\r\n" +
|
||||
// " NVL(m.FQTY, 0) AssistQty,\r\n" +
|
||||
// " m.TRUEGG PracticalSpec,\r\n" +
|
||||
// " 1 PrintQty,\r\n" +
|
||||
// " sysdate PrintDate,\r\n" +
|
||||
// " LASTEVENTUSER Operator,\r\n" +
|
||||
// " '' Salesman,\r\n" +
|
||||
// " m.REMARK ,\r\n" +
|
||||
// " '' DefineItem1,\r\n" +
|
||||
// " '' DefineItem2,\r\n" +
|
||||
// " '' DefineItem3,\r\n" +
|
||||
// " '' DefineItem4,\r\n" +
|
||||
// " '' DefineItem5,\r\n" +
|
||||
// " '' DefineItem6,\r\n" +
|
||||
// " '' DefineItem7,\r\n" +
|
||||
// " '' DefineItem8,\r\n" +
|
||||
// " '' DefineItem9,\r\n" +
|
||||
// " '' DefineItem10,\r\n" +
|
||||
// " '' DefineItem11,\r\n" +
|
||||
// " '' DefineItem12,\r\n" +
|
||||
// " '' DefineItem13,\r\n" +
|
||||
// " '' DefineItem14,\r\n" +
|
||||
// " '' DefineItem15,\r\n" +
|
||||
// " '' DefineItem16,\r\n" +
|
||||
// " '' DefineItem17,\r\n" +
|
||||
// " '' DefineItem18,\r\n" +
|
||||
// " '' DefineItem19,\r\n" +
|
||||
// " '' DefineItem20,\r\n" +
|
||||
// " CURRENT_TIMESTAMP Timestamp,\r\n" +
|
||||
// " SYSDATE CreatedTime,\r\n" +
|
||||
// " SYSDATE UpdatedTime,\r\n" +
|
||||
// " '0' CreatedUserId,\r\n" +
|
||||
// " '0' CreatedUserName,\r\n" +
|
||||
// " '0' UpdatedUserId,\r\n" +
|
||||
// " '0' UpdatedUserName,\r\n" +
|
||||
// " '0' IsDeleted,\r\n" +
|
||||
// " '0' TenantId,\r\n" +
|
||||
// " '1' MaterialVersion,\r\n" +
|
||||
// " '0' Piece,\r\n" +
|
||||
// " '0' IsSame\r\n" +
|
||||
// "FROM\r\n" +
|
||||
// " MATERIALPACKING m\r\n" +
|
||||
// "LEFT JOIN MATERIALSHIPREQUESTDETAIL m2 ON\r\n" +
|
||||
// " m.SHIPREQUESTNAME = m2.SHIPREQUESTNAME\r\n" +
|
||||
// " AND m.MATERIALSPECNAME = m2.MATERIALSPECNAME \r\n" +
|
||||
// " AND m.SDK_ID = m2.SDK_ID \r\n" +
|
||||
// " AND m.PHASE = m2.PHASE \r\n" +
|
||||
// "LEFT JOIN VBC_TOBILL@NC_PRD T ON\r\n" +
|
||||
// " m2.ERPDETAILID = T.DATAPK\r\n" +
|
||||
// "WHERE\r\n" +
|
||||
// " m.STOCKSTATE = 'Stocked'\r\n" +
|
||||
// " AND T.BILLPK IS NOT NULL AND m.SHIPREQUESTNAME = ? AND m.MATERIALPACKINGNAME IN ";
|
||||
// String str = "(";
|
||||
// for (MaterialPacking m : detail) {
|
||||
// str += "'" + m.getMaterialPackingName() + "',";
|
||||
// }
|
||||
// str += "'') ";
|
||||
// List<NcDataDto> queryForList2 = IDMFrameServiceProxy.getSqlTemplate().getJdbcTemplate().query(ncSql + str, new Object[]{shipRequestName},
|
||||
// new BeanPropertyRowMapper(NcDataDto.class));
|
||||
// new Test().savePrintData(queryForList2);
|
||||
// }
|
||||
// List<com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking> list = detail;
|
||||
}
|
||||
|
||||
String optRemark = "";
|
||||
// InvoiceServiceImpl.SendERPStockOut20240802(shipRequestName, "SDK", user, list,commitDate, opCode, optRemark);
|
||||
InvoiceServiceImpl.StockUpOutSendSAPOrMES(shipRequestName, "SDK", user, list,commitDate,opCode);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void stockOutPalletDessignOrAssign(String materialPackingName,String materialSpecName,String shipRequestName,String materialQuantity,String materialQuantity2,String sdk_id,String phase,String user) throws CustomException {
|
||||
|
||||
// MaterialshipRequest materialShipRequest = JSON.toJavaObject(in, MaterialshipRequest.class);
|
||||
String type = "Assign";
|
||||
// String materialPackingName = materialShipRequest.getMaterialPackingName();//标签
|
||||
// String materialSpecName = materialShipRequest.getMaterialSpecName();
|
||||
// String shipRequestName = materialShipRequest.getShipRequestName();
|
||||
// String materialQuantity = materialShipRequest.getMaterialQuantity();
|
||||
// String materialQuantity2 = materialShipRequest.getMaterialQuantity2();
|
||||
// String sdk_id = (materialShipRequest.getSdk_id() == null || "~".equals(materialShipRequest.getSdk_id().toString())) ? "" : materialShipRequest.getSdk_id();
|
||||
// String phase = materialShipRequest.getPhase() == null ? "" : materialShipRequest.getPhase();
|
||||
// String user = materialShipRequest.getUser();
|
||||
//查询单据类型
|
||||
String sql = "SELECT\r\n" +
|
||||
" m.SHIPREQUESTTYPE ,\r\n" +
|
||||
" m.SHIPREQUESTDETAILTYPE,\r\n" +
|
||||
" t.MATERIALSPECNAME ,\r\n" +
|
||||
" SUM(t.REQUESTQUANTITY - t.ASSIGNEDQUANTITY) MINUSQTY,t.SDK_ID,t.PHASE\r\n" +
|
||||
"FROM\r\n" +
|
||||
" MATERIALSHIPREQUESTDETAIL t\r\n" +
|
||||
"LEFT JOIN MATERIALSHIPREQUEST m ON\r\n" +
|
||||
" t.SHIPREQUESTNAME = m.SHIPREQUESTNAME\r\n" +
|
||||
"WHERE\r\n" +
|
||||
" m.SHIPREQUESTNAME = :SHIPREQUESTNAME\r\n" +
|
||||
" AND t.MATERIALSPECNAME = :MATERIALSPECNAME\r\n" +
|
||||
" AND (:SDK_ID IS NULL\r\n" +
|
||||
" OR t.SDK_ID = :SDK_ID)\r\n" +
|
||||
" AND (:PHASE IS NULL\r\n" +
|
||||
" OR t.PHASE = :PHASE)\r\n" +
|
||||
" GROUP BY m.SHIPREQUESTTYPE ,\r\n" +
|
||||
" m.SHIPREQUESTDETAILTYPE,\r\n" +
|
||||
" t.MATERIALSPECNAME,t.SDK_ID,t.PHASE\r\n" +
|
||||
"ORDER BY\r\n" +
|
||||
" t.MATERIALSPECNAME ,\r\n" +
|
||||
" t.SDK_ID,\r\n" +
|
||||
" t.PHASE";
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("SHIPREQUESTNAME", shipRequestName);
|
||||
hashMap.put("MATERIALSPECNAME", materialSpecName);
|
||||
hashMap.put("SDK_ID", sdk_id);
|
||||
hashMap.put("PHASE", phase);
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
|
||||
if(Objects.isNull(queryForList) || queryForList.isEmpty()) {
|
||||
throw new CustomException("未找到对应的数据!");
|
||||
}
|
||||
String judge = "SELECT\r\n" +
|
||||
" m.SDK_ID,MATERIALSPECNAME,\r\n" +
|
||||
" m.PHASE,\r\n" +
|
||||
" :MATERIALQUANTITY2 MATERIALQUANTITY2 , " +
|
||||
" m.SHIPREQUESTNAME,\r\n" +
|
||||
" m.STOCKSTATE,\r\n" +
|
||||
" m.PACKINGGRADE ,\r\n" +
|
||||
" CASE WHEN to_char(EXPIRINGDATE, 'yyyymmdd') >= to_char(SYSDATE, 'yyyymmdd') THEN 1\r\n" +
|
||||
" ELSE 0 END EXP, OQARESULTSTATE \r\n" +
|
||||
"FROM\r\n" +
|
||||
" MATERIALPACKING m\r\n" +
|
||||
"WHERE\r\n" +
|
||||
" m.MATERIALPACKINGNAME = :MATERIALPACKINGNAME";
|
||||
Map<String, Object> hashMap2 = new HashMap<String,Object> ();
|
||||
hashMap2.put("MATERIALPACKINGNAME", materialPackingName);
|
||||
hashMap2.put("MATERIALQUANTITY2", materialQuantity);
|
||||
List<Map<String, Object>> queryForList2 = IDMFrameServiceProxy.getSqlTemplate().queryForList(judge, hashMap2);
|
||||
if (queryForList2 != null && queryForList2.size() > 0) {
|
||||
materialSpecName = queryForList2.get(0).get("MATERIALSPECNAME") == null ? "" : queryForList2.get(0).get("MATERIALSPECNAME").toString();
|
||||
sdk_id = (queryForList2.get(0).get("SDK_ID") == null || "~".equals(sdk_id)) ? "" : queryForList2.get(0).get("SDK_ID").toString();
|
||||
phase = queryForList2.get(0).get("PHASE") == null ? "" : queryForList2.get(0).get("PHASE").toString();
|
||||
materialQuantity2 = queryForList2.get(0).get("MATERIALQUANTITY2") == null ? "" : queryForList2.get(0).get("MATERIALQUANTITY2").toString();
|
||||
String invoice = queryForList2.get(0).get("SHIPREQUESTNAME") == null ? "" : queryForList2.get(0).get("SHIPREQUESTNAME").toString();
|
||||
String stockState = queryForList2.get(0).get("STOCKSTATE") == null ? "" : queryForList2.get(0).get("STOCKSTATE").toString();
|
||||
String packinggrade = queryForList2.get(0).get("PACKINGGRADE") == null ? "" : queryForList2.get(0).get("PACKINGGRADE").toString();
|
||||
String exp = queryForList2.get(0).get("EXP") == null ? "" : queryForList2.get(0).get("EXP").toString();
|
||||
String oqaresultstate = queryForList2.get(0).get("OQARESULTSTATE") == null ? "" : queryForList2.get(0).get("OQARESULTSTATE").toString();
|
||||
if (!"Stocked".equals(stockState)) {
|
||||
throw new CustomException("条码不在库!");
|
||||
}
|
||||
if (!"OK".equals(packinggrade)) {
|
||||
throw new CustomException("批次不合格!");
|
||||
}
|
||||
if (!"1".equals(exp)) {
|
||||
throw new CustomException("批次已过期!");
|
||||
}
|
||||
if (!"END".equals(oqaresultstate)) {
|
||||
throw new CustomException("未完成质检!");
|
||||
}
|
||||
// if (!"".equals(invoice)) {
|
||||
// return AjaxResult.me().setSuccess(false).setMessage("条码已被" + invoice + "备货!");
|
||||
// }
|
||||
} else {
|
||||
throw new CustomException("未找到对应的条码!");
|
||||
}
|
||||
String shipRequestType = queryForList.get(0).get("SHIPREQUESTTYPE").toString();
|
||||
String shipRequestDetailType = queryForList.get(0).get("SHIPREQUESTDETAILTYPE").toString();
|
||||
String minusQty = queryForList.get(0).get("MINUSQTY").toString();
|
||||
BigDecimal FmaterialQuantity = new BigDecimal(materialQuantity);
|
||||
BigDecimal FminusQty = new BigDecimal(minusQty);
|
||||
BigDecimal Fzero = new BigDecimal(0);
|
||||
//"SHIPREQUESTDETAILTYPE": "4Y-Cxx-03",//跨组织领料调拨单
|
||||
//"BLSQ4K".equals(shipRequestType) || "4Y".equals(shipRequestType) || "CKSQ4I".equals(shipRequestType)
|
||||
int dy0 = FminusQty.compareTo(Fzero);
|
||||
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",materialPackingName);
|
||||
com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking selectByKey = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey);
|
||||
if ("Assign".equals(type)) {
|
||||
System.out.println("4Y".equals(shipRequestType) + "*****************");
|
||||
if ("4Y".equals(shipRequestType)) {//调拨单
|
||||
if ( "4Y-Cxx-03".equals(shipRequestDetailType)) {
|
||||
if (dy0 < 0) {//只能超发一个
|
||||
throw new CustomException("只能超发一个不能出库了!");
|
||||
}
|
||||
}
|
||||
} else if ("BLSQ4K".equals(shipRequestType)) {//领料
|
||||
if (dy0 < 0) {//只能超发一个
|
||||
throw new CustomException("只能超发一个不能出库了!");
|
||||
}
|
||||
} else if ("CKSQ4I".equals(shipRequestType)) { //其他出库
|
||||
if (dy0 < 0) {//只能超发一个
|
||||
throw new CustomException("只能超发一个不能出库了!");
|
||||
}
|
||||
} else if ("4C".equals(shipRequestType)) {
|
||||
if (dy0 <= 0) {//只能超发一个
|
||||
throw new CustomException("销售不允许超发!");
|
||||
}
|
||||
}else {
|
||||
throw new CustomException("单据类型不正确!");
|
||||
}
|
||||
} else if ("Dessign".equals(type)) {
|
||||
|
||||
}
|
||||
try {
|
||||
InvoiceServiceImpl.ReserveByPallet(selectByKey, shipRequestName, materialSpecName,sdk_id, phase, type, "SDK", user,materialQuantity2,"Y");
|
||||
} catch (CustomException e) {
|
||||
e.printStackTrace();
|
||||
AjaxResult.me().setSuccess(false).setMessage(e.toString());
|
||||
}
|
||||
}
|
||||
public static void saveMessageLog(ErpMessageLog log) {
|
||||
|
||||
String sql = "INSERT INTO BS_ERPMESSAGELOG(INTERFACETIME,SERVERNAME, EVENTNAME, EVENTTIMEKEY, EVENTUSER, MESSAGELOG,RESULTCODE,MESSAGEID,RESULTMESSAGE,MESSAGELOG2,RESULTMESSAGE2)\r\n"
|
||||
+ "VALUES(TO_DATE(:INTERFACETIME,'yyyy-mm-dd hh24:mi:ss'),:SERVERNAME, :EVENTNAME, :EVENTTIMEKEY, :EVENTUSER, :MESSAGELOG,:RESULTCODE,:MESSAGEID,:RESULTMESSAGE,:MESSAGELOG2,:RESULTMESSAGE2)";
|
||||
Map<String, Object> bindMap = new HashMap<String, Object>();
|
||||
bindMap.put("SERVERNAME", log.getServerName());
|
||||
bindMap.put("EVENTNAME", log.getEventName());
|
||||
bindMap.put("EVENTTIMEKEY", log.getId());
|
||||
bindMap.put("EVENTUSER", log.getEventUser());
|
||||
bindMap.put("MESSAGEID", log.getMessageId());
|
||||
bindMap.put("INTERFACETIME", log.getInterfaceTime());
|
||||
bindMap.put("RESULTCODE", log.getResultCode());
|
||||
bindMap.put("MESSAGELOG", log.getSendMsg());// 推送ERP的json
|
||||
bindMap.put("RESULTMESSAGE", log.getReturnMsg());// 返回结果的json
|
||||
bindMap.put("MESSAGELOG2", log.getSendMsg2());// 推送ERP的json
|
||||
bindMap.put("RESULTMESSAGE2", log.getReturnMsg2());// 返回结果的json
|
||||
IDMFrameServiceProxy.getSqlTemplate().update(sql, bindMap);
|
||||
}
|
||||
}
|
@ -622,7 +622,6 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
return billCode;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public boolean packingChargeSplit(List<MaterialPacking> boxList, String user) {
|
||||
|
||||
String condition="";
|
||||
@ -680,10 +679,14 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
String REMARK = "";
|
||||
String SHIPREQUESTNAME = "";
|
||||
String SHIPREQUESTDETAILNAME = "";
|
||||
String MATERIALTYPE = "";
|
||||
String RECEIVEACTNO = "";
|
||||
String UNDOID = "";
|
||||
String FIFOFLAG = "";
|
||||
|
||||
String ypcSql = "SELECT M.RECEIVETIME,M.MAKEDATE,M.EXPIRINGDATE,M.HOLDSTATE,M.OQARESULTSTATE ,\r\n" +
|
||||
" M.OQARESULT ,M.PACKINGGRADE ,M.TRUEGG ,M.ERPFACTORY ,M.ERPLOCATION ,M.LOCATIONNAME ,\r\n" +
|
||||
" M.SHELFNAME ,M.AREANAME ,M.DURABLENAME ,M.CAREER_ASSISTANCE ,M.SALESPERSON ,M.CUSTOMNO,M.SDK_ID,M.PHASE,M.SHIPREQUESTNAME,M.SHIPREQUESTDETAILNAME,M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,"
|
||||
" M.SHELFNAME ,M.MATERIALTYPE,M.AREANAME ,M.DURABLENAME ,M.CAREER_ASSISTANCE ,M.SALESPERSON ,M.CUSTOMNO,M.SDK_ID,M.PHASE,M.SHIPREQUESTNAME,M.SHIPREQUESTDETAILNAME,M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,"
|
||||
+ " M.DEVIATION ,M.DIAMETER ,M.WIDTH ,M.WEIGHT ,M.PRODUCTLINE,UNIT ,MJPC,BUSINESS_UNIT,M.MATERIALSPECNAME, M.SUBPACKINGQUANTITY, M.MATERIALCREATEQUANTITY, M.MATERIALQUANTITY, M.CHARGE, M.REMARK" +
|
||||
" FROM MATERIALPACKING M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND M.CHARGE = :CHARGE ";
|
||||
Map<String, Object> hashMap4 = new HashMap<String,Object> ();
|
||||
@ -725,6 +728,11 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
SHIPREQUESTNAME = map.get("SHIPREQUESTNAME") == null ? "" : map.get("SHIPREQUESTNAME").toString();
|
||||
SHIPREQUESTDETAILNAME = map.get("SHIPREQUESTDETAILNAME") == null ? "" : map.get("SHIPREQUESTDETAILNAME").toString();
|
||||
|
||||
MATERIALTYPE = map.get("MATERIALTYPE") == null ? "" : map.get("MATERIALTYPE").toString();
|
||||
RECEIVEACTNO = map.get("RECEIVEACTNO") == null ? "" : map.get("RECEIVEACTNO").toString();
|
||||
UNDOID = map.get("UNDOID") == null ? "" : map.get("UNDOID").toString();
|
||||
FIFOFLAG = map.get("FIFOFLAG") == null ? "" : map.get("FIFOFLAG").toString();
|
||||
|
||||
}
|
||||
|
||||
if (MaterialPackingList != null && MaterialPackingList.size() > 0) {
|
||||
@ -774,6 +782,10 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
|
||||
bindMap.put("ReceiveRequestName", RECEIVEREQUESTNAME);
|
||||
bindMap.put("ReceiveRequestDetailName",RECEIVEREQUESTDETAILNAME);
|
||||
bindMap.put("materialType", MATERIALTYPE);
|
||||
bindMap.put("receiveActNo", RECEIVEACTNO);
|
||||
bindMap.put("unDoID", UNDOID);
|
||||
bindMap.put("fifoFlag", FIFOFLAG);
|
||||
|
||||
bindMap.put("CAREER_ASSISTANCE", CAREER_ASSISTANCE);//业助信息
|
||||
bindMap.put("BUSINESS_UNIT", BUSINESS_UNIT);//业务
|
||||
@ -1869,8 +1881,8 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
|
||||
String updateSql= " UPDATE MATERIALSHIPREQUESTDETAIL m SET m.ASSIGNEDQUANTITY = m.ASSIGNEDQUANTITY - :QTY WHERE m.SITENAME = :SITENAME"
|
||||
+ " AND m.SHIPREQUESTNAME = :SHIPREQUESTNAME AND m.MATERIALSPECNAME = :MATERIALSPECNAME "
|
||||
+ "AND (:SDK_ID IS NULL OR SDK_ID = :SDK_ID) " +
|
||||
// "AND (:PHASE IS NULL OR PHASE = :PHASE)" +
|
||||
// + "AND (:SDK_ID IS NULL OR SDK_ID = :SDK_ID) " +
|
||||
+ "AND (:PHASE IS NULL OR PHASE = :PHASE)" +
|
||||
" AND ROWNUM = 1 ";
|
||||
Map<String, Object> bindMap = new HashMap<String, Object>();
|
||||
//bindMap.put("QTY", materialQuantity2);
|
||||
@ -1879,7 +1891,7 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
bindMap.put("SHIPREQUESTNAME", shipReuqestName);
|
||||
bindMap.put("MATERIALPACKINGNAME", materialPackingName);
|
||||
bindMap.put("MATERIALSPECNAME", materialSpecName);
|
||||
bindMap.put("SDK_ID", sdk_id);
|
||||
// bindMap.put("SDK_ID", sdk_id);
|
||||
bindMap.put("PHASE", phase);
|
||||
IDMFrameServiceProxy.getSqlTemplate().update(updateSql, bindMap);
|
||||
}
|
||||
@ -3205,7 +3217,7 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
String qtysql = "WHERE MATERIALPACKINGNAME = ?";
|
||||
List<MaterialPacking> qtyQueryForList = MaterialPackingServiceProxy.getMaterialPackingService().select(qtysql, bindSet);
|
||||
|
||||
String qty = String.valueOf(qtyQueryForList.get(z).getMaterialQuantity());
|
||||
String qty = new Double(qtyQueryForList.get(z).getMaterialQuantity()) == null ? "0" : String.valueOf(qtyQueryForList.get(z).getMaterialQuantity());
|
||||
|
||||
String qty2 = new Double(qtyQueryForList.get(z).getMaterialQuantity2()) == null ? "0" : String.valueOf(qtyQueryForList.get(z).getMaterialQuantity2());
|
||||
String materialPackingName = qtyQueryForList.get(z).getMaterialPackingName();
|
||||
@ -3245,15 +3257,21 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
throw new RuntimeException("修改数量拆分失败");
|
||||
}
|
||||
|
||||
//记录到拆分表
|
||||
String shipRequestDetailName = qtyQueryForList.get(z).getShipRequestDetailName() == null ? "" : qtyQueryForList.get(z).getShipRequestDetailName().toString();
|
||||
untils.fahuoSplit(newPalletNo, shipRequestName, shipRequestDetailName, bigQty2);
|
||||
|
||||
// 原条码扣减拆出的数量,用剩余数量更新原条码,条码不变,数量更新
|
||||
SetEventInfo setEventInfo = new SetEventInfo();
|
||||
Map<String, Object> pakHashMap = new HashMap<>();
|
||||
pakHashMap.put("materialQuantity", restQty.doubleValue());
|
||||
pakHashMap.put("materialQuantity2", 0);
|
||||
pakHashMap.put("shipRequestName", "");
|
||||
pakHashMap.put("shipRequestDetailName", "");
|
||||
|
||||
EventInfo eventInfo = new EventInfoUtil().makeEventInfo("备货出库拆分修改数量拆分条码", eventUser, "修改数量拆分条码");
|
||||
EventInfo eventInfo = new EventInfoUtil().makeEventInfo("备货出库拆分条码", eventUser, "拆分条码");
|
||||
setEventInfo.setUserColumns(pakHashMap);
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(new MaterialPackingKey( queryForList.get(z).get("SITENAME").toString(),
|
||||
queryForList.get(z).get("MATERIALPACKINGNAME").toString()), eventInfo, setEventInfo);
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(new MaterialPackingKey( "SDK", MATERIALPACKINGNAME), eventInfo, setEventInfo);
|
||||
|
||||
// 删除被拆分的原条码数据,用拆分出的新条码覆盖,进行后面的过账,现场仓过账只过账已拆分出的数量,剩余数量的原条码不过账
|
||||
boolean deletePacking = materialPackingKeyList.remove(MATERIALPACKINGNAME);
|
||||
@ -3336,8 +3354,8 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",materialPackingName);
|
||||
arrayList.add(materialPackingKey);
|
||||
}
|
||||
billCode = UnSourcedChangeLocation(arrayList,ERPRECEIVEFACTORY,
|
||||
ERPRECEIVELOCATION, "", eventUser, commitDate );
|
||||
// billCode = UnSourcedChangeLocation(arrayList,ERPRECEIVEFACTORY,
|
||||
// ERPRECEIVELOCATION, "", eventUser, commitDate );
|
||||
|
||||
List<MaterialPackingKey> mpKeyList = new ArrayList<MaterialPackingKey> ();
|
||||
SetEventInfo setEventInfo = new SetEventInfo();
|
||||
|
@ -772,6 +772,8 @@ public class ProductIntoServiceImpl implements FGStockInService {
|
||||
bindMap.put("SALESPERSON", queryForList.get(0).get("SALESPERSON"));//事业部
|
||||
bindMap.put("MJPC", queryForList.get(0).get("MJPC"));//母卷批次
|
||||
bindMap.put("remark", queryForList.get(0).get("REMARK"));//备注
|
||||
bindMap.put("materialPackingType", "Box");
|
||||
|
||||
if("Y".equals(is_oven)) {
|
||||
bindMap.put("MATURATIONINTIME", eventInfo.getEventTime());//熟化入库时间
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user