Compare commits

...

2 Commits

4 changed files with 222 additions and 36 deletions

View File

@ -0,0 +1,27 @@
package com.cim.idm.dao;
import com.cim.idm.model.MaterialPackingSubDto;
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component
@Mapper
public interface MesToWmsDao {
public List<MaterialPackingSubDto> getEndReportList(@Param("materialPackingName") String materialPackingName) throws Exception;
public void updateEndReport(@Param("receiveRequestName") String receiveRequestName,@Param("receiveRequestDetailName") String receiveRequestDetailName,@Param("materialPackingName") String materialPackingName) throws Exception;
public void updateEndReport2(@Param("receiveRequestName") String receiveRequestName,@Param("receiveRequestDetailName") String receiveRequestDetailName,@Param("materialPackingName") String materialPackingName) throws Exception;
public void deleteSub(@Param("receiveRequestName") String receiveRequestName,@Param("receiveRequestDetailName") String receiveRequestDetailName,@Param("materialPackingName") String materialPackingName) throws Exception;
public void updateBsMesShipped(@Param("materialPackingName") String materialPackingName) throws Exception;
public void updateUnDoId(@Param("undoId") String undoId) throws Exception;
}

View File

@ -0,0 +1,19 @@
package com.cim.idm.model;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class MaterialPackingSubDto {
private String receiveRequestName;
private String receiveRequestDetailName;
private String materialPackingName;
private BigDecimal qty;
}

View File

@ -2,6 +2,8 @@ package com.cim.idm.service.Impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cim.idm.dao.FgStockInDao;
import com.cim.idm.dao.MesToWmsDao;
import com.cim.idm.data.ErpMessageLog;
import com.cim.idm.exception.GlobalException;
import com.cim.idm.framework.IDMFrameServiceProxy;
@ -9,6 +11,7 @@ import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.framework.orm.SqlTemplate;
import com.cim.idm.framework.util.sys.SystemPropHelper;
import com.cim.idm.framework.util.time.TimeStampUtil;
import com.cim.idm.model.MaterialPackingSubDto;
import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl;
import com.cim.idm.service.MESToWMSService;
import com.cim.idm.service.QMSService;
@ -49,6 +52,9 @@ public class MESToWMSServiceImpl implements MESToWMSService {
@Autowired
private QMSService qmsService;
@Autowired
private MesToWmsDao mesToWmsDao;
@Override
@Transactional
public AjaxResult materialConsume_Request(JSONArray in) throws Exception {
@ -177,6 +183,86 @@ public class MESToWMSServiceImpl implements MESToWMSService {
* @param undoId
* @param user
*/
// @Override
// @Transactional
// public AjaxResult sapcprkUndo(String undoId, String user) throws Exception {
//
// String billCode = toSAPService.cancelShipInter(undoId, user);
// if (billCode == null) {
// throw new GlobalException("报送ERP失败,请联系IT处理");
// }
//
//
// AjaxResult result = new AjaxResult();
//
// EventInfo makeEventInfo = new EventInfoUtil ().makeEventInfo("MakeUndo", user, "MakeUndo");
// String condition="SELECT MATERIALPACKINGNAME FROM MATERIALPACKING WHERE UNDOID = :UNDOID ";
//// String[] bindSet={undoId};
// Map<String, Object> hashMap = new HashMap<String, Object> ();
// hashMap.put("UNDOID", undoId);
// //根据物料凭证找到所有的待冲销数据更新库存状态为创建
// List<Map<String, Object>> MPlIST = IDMFrameServiceProxy.getSqlTemplate().queryForList(condition, hashMap);
// SetEventInfo setEventInfo = new SetEventInfo();
// setEventInfo.setUserColumns(hashMap);
// RemoveInfo removeInfo = new RemoveInfo();
// for (Map<String, Object> MP : MPlIST) {
// //根据当前的数据跟新完工报告且删除入库表的数据
// String sql = "SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUB M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME\r\n" +
// "UNION \r\n" +
// "SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUBHISTORY M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME";
// String MATERIALPACKINGNAME = MP.get("MATERIALPACKINGNAME").toString();
// hashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME);
// List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
// for (int i = 0; i < queryForList.size(); i++) {
// String dh = queryForList.get(i).get("RECEIVEREQUESTNAME").toString();
// hashMap.put("RECEIVEREQUESTNAME", dh);
// String hh = queryForList.get(i).get("RECEIVEREQUESTDETAILNAME").toString();
// hashMap.put("RECEIVEREQUESTDETAILNAME", hh);
//// String sl = queryForList.get(i).get("QTY").toString();
// String updateSql = "UPDATE MATERIALRECEIVEREQUESTDETAIL T \r\n" +
// "SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( \r\n" +
// " SELECT NVL(SUM(M.QTY),0) \r\n" +
// " FROM MATERIALPACKINGSUB M \r\n" +
// " WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME \r\n" +
// " AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME \r\n" +
// " AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME \r\n" +
// ") \r\n" +
// "WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME \r\n" +
// " AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME";
// IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap);
//
//
// String updateSql2 = "UPDATE MATERIALRECEIVEREQUESTDETAIL T \r\n" +
// "SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( \r\n" +
// " SELECT NVL(SUM(M.QTY),0) \r\n" +
// " FROM MATERIALPACKINGSUBHISTORY M \r\n" +
// " WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME \r\n" +
// " AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME \r\n" +
// " AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME \r\n" +
// ") \r\n" +
// "WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME \r\n" +
// " AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME";
// IDMFrameServiceProxy.getSqlTemplate().update(updateSql2, hashMap);
//
// String deleteSql = " DELETE FROM MATERIALPACKINGSUB T WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND "
// + "T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME AND T.MATERIALPACKINGNAME = :MATERIALPACKINGNAME";
// IDMFrameServiceProxy.getSqlTemplate().update(deleteSql, hashMap);
//
// String MESsQL = " UPDATE BS_MES_SHIPPED T SET T.RECEIVE_FLAG = 'N' WHERE T.LOTNAME = :MATERIALPACKINGNAME ";
// IDMFrameServiceProxy.getSqlTemplate().update(MESsQL, hashMap);
// }
// MaterialPackingServiceProxy.getMaterialPackingService().remove(new MaterialPackingKey("SDK", MATERIALPACKINGNAME), makeEventInfo, removeInfo);
// }
//
// String sql = "UPDATE IF_ERPUNDO T SET T.FLAG = 'Y' WHERE T.UNDOID = :UNDOID ";
// Map<String, Object> hashMap2 = new HashMap<String, Object> ();
// hashMap2.put("UNDOID", undoId);
// IDMFrameServiceProxy.getSqlTemplate().update(sql, hashMap2);
//
// result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功");
// return result;
// }
// 改造成mybase实现
@Override
@Transactional
public AjaxResult sapcprkUndo(String undoId, String user) throws Exception {
@ -201,57 +287,31 @@ public class MESToWMSServiceImpl implements MESToWMSService {
RemoveInfo removeInfo = new RemoveInfo();
for (Map<String, Object> MP : MPlIST) {
//根据当前的数据跟新完工报告且删除入库表的数据
String sql = "SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUB M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME\r\n" +
"UNION \r\n" +
"SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUBHISTORY M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME";
String MATERIALPACKINGNAME = MP.get("MATERIALPACKINGNAME").toString();
hashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME);
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
List<MaterialPackingSubDto> queryForList = mesToWmsDao.getEndReportList(MATERIALPACKINGNAME);
for (int i = 0; i < queryForList.size(); i++) {
String dh = queryForList.get(i).get("RECEIVEREQUESTNAME").toString();
String dh = queryForList.get(i).getReceiveRequestName().toString();
hashMap.put("RECEIVEREQUESTNAME", dh);
String hh = queryForList.get(i).get("RECEIVEREQUESTDETAILNAME").toString();
String hh = queryForList.get(i).getReceiveRequestDetailName().toString();
hashMap.put("RECEIVEREQUESTDETAILNAME", hh);
// String sl = queryForList.get(i).get("QTY").toString();
String updateSql = "UPDATE MATERIALRECEIVEREQUESTDETAIL T \r\n" +
"SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( \r\n" +
" SELECT NVL(SUM(M.QTY),0) \r\n" +
" FROM MATERIALPACKINGSUB M \r\n" +
" WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME \r\n" +
" AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME \r\n" +
" AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME \r\n" +
") \r\n" +
"WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME \r\n" +
" AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME";
IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap);
mesToWmsDao.updateEndReport(dh, hh, MATERIALPACKINGNAME);
String updateSql2 = "UPDATE MATERIALRECEIVEREQUESTDETAIL T \r\n" +
"SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( \r\n" +
" SELECT NVL(SUM(M.QTY),0) \r\n" +
" FROM MATERIALPACKINGSUBHISTORY M \r\n" +
" WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME \r\n" +
" AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME \r\n" +
" AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME \r\n" +
") \r\n" +
"WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME \r\n" +
" AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME";
IDMFrameServiceProxy.getSqlTemplate().update(updateSql2, hashMap);
mesToWmsDao.updateEndReport2(dh, hh, MATERIALPACKINGNAME);
String deleteSql = " DELETE FROM MATERIALPACKINGSUB T WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND "
+ "T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME AND T.MATERIALPACKINGNAME = :MATERIALPACKINGNAME";
IDMFrameServiceProxy.getSqlTemplate().update(deleteSql, hashMap);
mesToWmsDao.deleteSub(dh, hh, MATERIALPACKINGNAME);
mesToWmsDao.updateBsMesShipped(MATERIALPACKINGNAME);
String MESsQL = " UPDATE BS_MES_SHIPPED T SET T.RECEIVE_FLAG = 'N' WHERE T.LOTNAME = :MATERIALPACKINGNAME ";
IDMFrameServiceProxy.getSqlTemplate().update(MESsQL, hashMap);
}
MaterialPackingServiceProxy.getMaterialPackingService().remove(new MaterialPackingKey("SDK", MATERIALPACKINGNAME), makeEventInfo, removeInfo);
}
String sql = "UPDATE IF_ERPUNDO T SET T.FLAG = 'Y' WHERE T.UNDOID = :UNDOID ";
Map<String, Object> hashMap2 = new HashMap<String, Object> ();
hashMap2.put("UNDOID", undoId);
IDMFrameServiceProxy.getSqlTemplate().update(sql, hashMap2);
mesToWmsDao.updateUnDoId(undoId);
result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功");
return result;

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cim.idm.dao.MesToWmsDao">
<!-- 查询完工报告-->
<select id="getEndReportList" resultType="com.cim.idm.model.MaterialPackingSubDto">
SELECT
M.RECEIVEREQUESTNAME,
M.RECEIVEREQUESTDETAILNAME,
M.QTY
FROM
MATERIALPACKINGSUB M
WHERE
M.MATERIALPACKINGNAME = #{materialPackingName}
UNION
SELECT
M.RECEIVEREQUESTNAME,
M.RECEIVEREQUESTDETAILNAME,
M.QTY
FROM
MATERIALPACKINGSUBHISTORY M
WHERE
M.MATERIALPACKINGNAME = #{materialPackingName}
</select>
<!-- 更新-->
<update id="updateEndReport" parameterType="map">
UPDATE
MATERIALRECEIVEREQUESTDETAIL T
SET
T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - (
SELECT
NVL(SUM(M.QTY), 0)
FROM
MATERIALPACKINGSUB M
WHERE
M.MATERIALPACKINGNAME = #{materialPackingName}
AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME
AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME
WHERE
T.RECEIVEREQUESTNAME = #{receiveRequestName}
AND T.RECEIVEREQUESTDETAILNAME = #{receiveRequestDetailName}
</update>
<!-- 更新-->
<update id="updateEndReport2" parameterType="map">
UPDATE MATERIALRECEIVEREQUESTDETAIL T
SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - (
SELECT NVL(SUM(M.QTY),0)
FROM MATERIALPACKINGSUBHISTORY M
WHERE M.MATERIALPACKINGNAME = #{materialPackingName}
AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME
AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME
)
WHERE T.RECEIVEREQUESTNAME = #{receiveRequestName}
AND T.RECEIVEREQUESTDETAILNAME = #{receiveRequestDetailName}
</update>
<delete id="deleteSub" parameterType="map">
DELETE
FROM
MATERIALPACKINGSUB T
WHERE
T.RECEIVEREQUESTNAME = #{receiveRequestName}
AND
T.RECEIVEREQUESTDETAILNAME = #{receiveRequestDetailName}
AND T.MATERIALPACKINGNAME = #{materialPackingName}
</delete>
<!-- 更新-->
<update id="updateBsMesShipped" parameterType="map">
UPDATE BS_MES_SHIPPED T SET T.RECEIVE_FLAG = 'N' WHERE T.LOTNAME = #{materialPackingName}
</update>
<update id="updateUnDoId" parameterType="map">
UPDATE IF_ERPUNDO T SET T.FLAG = 'Y' WHERE T.UNDOID = #{undoId}
</update>
</mapper>