diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/PurchaseReturnController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/PurchaseReturnController.java index 15adc52..9f61647 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/PurchaseReturnController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/PurchaseReturnController.java @@ -2,8 +2,12 @@ package com.cim.idm.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.cim.idm.dao.PurchaseReturnServiceDao; import com.cim.idm.framework.IDMFrameServiceProxy; import com.cim.idm.model.MaterialReceiveRequest; +import com.cim.idm.model.PurchaseReturnDto; +import com.cim.idm.model.StockOutDto; +import com.cim.idm.service.PurchaseReturnService; import com.cim.idm.utils.AjaxResult; import com.cim.idm.wmsextend.generic.errorHandler.CustomException; import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy; @@ -20,10 +24,7 @@ import org.springframework.web.bind.annotation.RestController; import com.cim.idm.service.Impl.InvoiceServiceImpl; import java.math.BigDecimal; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; @Api("单据接口") @RestController @@ -34,6 +35,12 @@ public class PurchaseReturnController { @Autowired private InvoiceServiceImpl InvoiceServiceImpl; + @Autowired + private PurchaseReturnServiceDao purchaseReturnServiceDao; + + @Autowired + private PurchaseReturnService purchaseReturnService; + /** * 获取采购退货单号列表 * @param in @@ -47,31 +54,41 @@ public class PurchaseReturnController { String receiverequestname = materialReceiveRequest.getReceiveRequestName() == null ? "" : materialReceiveRequest.getReceiveRequestName(); String erpfactory = materialReceiveRequest.getErpFactory(); String siteName = materialReceiveRequest.getSiteName(); - - String sql = "SELECT\r\n" + - " DISTINCT M.RECEIVEREQUESTNAME\r\n" + - "FROM\r\n" + - " MATERIALRECEIVEREQUESTDETAIL M\r\n" + - " LEFT JOIN MATERIALRECEIVEREQUEST R ON\r\n" + - " R.RECEIVEREQUESTNAME = M.RECEIVEREQUESTNAME\r\n" + - "WHERE\r\n" + - " M.SITENAME = :SITENAME\r\n" + -// " AND R.RECEIVEREQUESTTYPE = '45'\r\n" + - " AND R.RETURNFLAG = 'Y'\r\n" + - " AND R.RECEIVEREQUESTSTATE <> 'Completed'\r\n" + - " AND M.ERPFACTORY = :ERPFACTORY\r\n" + - " AND M.RECEIVEREQUESTNAME LIKE :RECEIVEREQUESTNAME"; - - Map bindMap = new HashMap(); - bindMap.put("SITENAME",siteName); - bindMap.put("RECEIVEREQUESTNAME","%" + receiverequestname + "%"); - bindMap.put("ERPFACTORY",erpfactory); - List> list = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, bindMap); + String user = materialReceiveRequest.getUser(); + receiverequestname = "%" + receiverequestname + "%"; - if(Objects.isNull(list) || list.isEmpty()) { + try { + List purchaseReturnList = + purchaseReturnServiceDao.getPurchaseReturnList(siteName, user, receiverequestname); + return AjaxResult.me().setResultObj(purchaseReturnList); + } catch (Exception e) { return AjaxResult.me().setErrorCode(500).setMessage("未找到对应的数据!"); - } - return AjaxResult.me().setResultObj(list); + } +// +// String sql = "SELECT\r\n" + +// " DISTINCT M.RECEIVEREQUESTNAME\r\n" + +// "FROM\r\n" + +// " MATERIALRECEIVEREQUESTDETAIL M\r\n" + +// " LEFT JOIN MATERIALRECEIVEREQUEST R ON\r\n" + +// " R.RECEIVEREQUESTNAME = M.RECEIVEREQUESTNAME\r\n" + +// "WHERE\r\n" + +// " M.SITENAME = :SITENAME\r\n" + +//// " AND R.RECEIVEREQUESTTYPE = '45'\r\n" + +// " AND R.RETURNFLAG = 'Y'\r\n" + +// " AND R.RECEIVEREQUESTSTATE <> 'Completed'\r\n" + +// " AND M.ERPFACTORY = :ERPFACTORY\r\n" + +// " AND M.RECEIVEREQUESTNAME LIKE :RECEIVEREQUESTNAME"; +// +// Map bindMap = new HashMap(); +// bindMap.put("SITENAME",siteName); +// bindMap.put("RECEIVEREQUESTNAME","%" + receiverequestname + "%"); +// bindMap.put("ERPFACTORY",erpfactory); +// List> list = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, bindMap); +// +// if(Objects.isNull(list) || list.isEmpty()) { +// return AjaxResult.me().setErrorCode(500).setMessage("未找到对应的数据!"); +// } +// return AjaxResult.me().setResultObj(list); } @@ -88,28 +105,36 @@ public class PurchaseReturnController { String receiverequestname = materialReceiveRequest.getReceiveRequestName() == null ? "" : materialReceiveRequest.getReceiveRequestName(); String erpfactory = materialReceiveRequest.getErpFactory(); String siteName = materialReceiveRequest.getSiteName(); - - String sql = "SELECT A.RECEIVEREQUESTNAME,A.RECEIVEREQUESTDETAILNAME,C.MATERIALSPECNAME,A.DESCRIPTION,\r\n" + - "m.FNAME MATERIALUNIT,A.REQUESTQUANTITY,A.CHARGE,A.RECEIVEDQUANTITY,C.DESC_CN,\r\n" + - "A.ERPLOCATION,D.ERPFACTORY,D.RETURNFLAG,D.SITENAME,'0' AS SELECTEDQUANTITY,A.SDK_ID,A.PHASE\r\n" + - "from\r\n" + - "MATERIALRECEIVEREQUESTDETAIL A LEFT JOIN MATERIALUNIT m ON A.MATERIALUNIT = m.FNUMBER ,MATERIALSPEC C,MATERIALRECEIVEREQUEST D \r\n" + - "where A.SITENAME = :SITENAME\r\n" + - "AND A.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME\r\n" + - "AND D.RECEIVEREQUESTNAME = A.RECEIVEREQUESTNAME\r\n" + - "AND A.MATERIALSPECNAME = C.MATERIALSPECNAME\r\n" + - "AND D.RETURNFLAG='Y'\r\n" + - "ORDER BY A.RECEIVEREQUESTDETAILNAME"; - - Map bindMap = new HashMap(); - bindMap.put("SITENAME",siteName); - bindMap.put("RECEIVEREQUESTNAME",receiverequestname); - List> list = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, bindMap); - if(Objects.isNull(list) || list.isEmpty()) { + try { + List purchaseReturnInfo = + purchaseReturnServiceDao.getPurchaseReturnInfo(siteName, materialReceiveRequest.getUser(), receiverequestname); + return AjaxResult.me().setResultObj(purchaseReturnInfo); + } catch (Exception e) { return AjaxResult.me().setErrorCode(500).setMessage("未找到对应的数据!"); - } - return AjaxResult.me().setResultObj(list); + } +// +// String sql = "SELECT A.RECEIVEREQUESTNAME,A.RECEIVEREQUESTDETAILNAME,C.MATERIALSPECNAME,A.DESCRIPTION,\r\n" + +// "m.FNAME MATERIALUNIT,A.REQUESTQUANTITY,A.CHARGE,A.RECEIVEDQUANTITY,C.DESC_CN,\r\n" + +// "A.ERPLOCATION,D.ERPFACTORY,D.RETURNFLAG,D.SITENAME,'0' AS SELECTEDQUANTITY,A.SDK_ID,A.PHASE\r\n" + +// "from\r\n" + +// "MATERIALRECEIVEREQUESTDETAIL A LEFT JOIN MATERIALUNIT m ON A.MATERIALUNIT = m.FNUMBER ,MATERIALSPEC C,MATERIALRECEIVEREQUEST D \r\n" + +// "where A.SITENAME = :SITENAME\r\n" + +// "AND A.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME\r\n" + +// "AND D.RECEIVEREQUESTNAME = A.RECEIVEREQUESTNAME\r\n" + +// "AND A.MATERIALSPECNAME = C.MATERIALSPECNAME\r\n" + +// "AND D.RETURNFLAG='Y'\r\n" + +// "ORDER BY A.RECEIVEREQUESTDETAILNAME"; +// +// Map bindMap = new HashMap(); +// bindMap.put("SITENAME",siteName); +// bindMap.put("RECEIVEREQUESTNAME",receiverequestname); +// List> list = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, bindMap); +// +// if(Objects.isNull(list) || list.isEmpty()) { +// return AjaxResult.me().setErrorCode(500).setMessage("未找到对应的数据!"); +// } +// return AjaxResult.me().setResultObj(list); } @@ -325,4 +350,18 @@ public class PurchaseReturnController { List> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(ressSql, hashMap); return AjaxResult.me().setResultObj(queryForList); } + + @RequestMapping(value = "/CompleteReceiveRequest", method = RequestMethod.POST) + public AjaxResult completeShipRequest(@RequestBody JSONObject in ){ + StockOutDto ms = JSON.toJavaObject(in, StockOutDto.class); + String shipRequestName = ms.getShipRequestName(); + String siteName = "SDK"; + String user = ms.getUser(); + try { + purchaseReturnService.completeReceiveRequest(siteName, user, shipRequestName); + } catch (Exception e) { + return AjaxResult.me().setErrorCode(500).setMessage(e.toString()); + } + return AjaxResult.me().setResultObj(null); + } } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/dao/PurchaseReturnServiceDao.java b/zi-wms-pda/src/main/java/com/cim/idm/dao/PurchaseReturnServiceDao.java new file mode 100644 index 0000000..1b17360 --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/dao/PurchaseReturnServiceDao.java @@ -0,0 +1,25 @@ +package com.cim.idm.dao; + +import com.cim.idm.model.PurchaseReturnDto; +import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.mapstruct.Mapping; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +@Component +@Mapper +public interface PurchaseReturnServiceDao { + //获取库存BoxList + public List getPurchaseReturnBoxList(@Param("siteName") String siteName, @Param("receiverequestname") String receiverequestname) throws Exception; + + public List getPurchaseReturnList(@Param("siteName") String siteName, @Param("user") String user, @Param("receiverequestname") String receiverequestname) throws Exception; + + public List getPurchaseReturnInfo(@Param("siteName") String siteName, @Param("user") String user, @Param("receiverequestname") String receiverequestname) throws Exception; + + public List getPurPackingInfo(@Param("siteName") String siteName, @Param("user") String user, @Param("receiverequestname") String receiverequestname) throws Exception; + +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/PurchaseReturnDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/PurchaseReturnDto.java new file mode 100644 index 0000000..9e637a2 --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/PurchaseReturnDto.java @@ -0,0 +1,55 @@ +package com.cim.idm.model; + +import lombok.Data; + +@Data +public class PurchaseReturnDto { + + private String siteName; + + private String user; + + private String receiverequestname; + + private String receiverequestdetailname; + + private String receiveactno; + + private String acttype; + + private String receivequantity; + + private String materialQuantity; + + private String materialSpecName; + + private String charge; + + private String selectquantity; + + private String materialUnit; + + private String erpFactory; + + private String erpLocation; + + private String locationName; + + private String description; + + private String requestQuantity; + + private String shipRequestName; + + private String shipRequestDetailName; + + private String packinggrade; + + private String oqaresult; + + private String oqaresultState; + + private String materiaQuantity2; + + private String specialState; +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/PurchaseReturnServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/PurchaseReturnServiceImpl.java new file mode 100644 index 0000000..bc7157c --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/PurchaseReturnServiceImpl.java @@ -0,0 +1,101 @@ +package com.cim.idm.service.Impl; + +import com.cim.idm.dao.PurchaseReturnServiceDao; +import com.cim.idm.dao.ToSapDao; +import com.cim.idm.service.PurchaseReturnService; +import com.cim.idm.service.impl.ToSAPServiceImpl; +import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class PurchaseReturnServiceImpl implements PurchaseReturnService { + + @Autowired + private PurchaseReturnServiceDao purchaseReturnServiceDao; + + private ToSapDao toSapDao; + + @Autowired + private ToSAPServiceImpl toSAPServiceImpl; + /** + * @param siteName + * @param user + * @param receiverequestname + * @return + * @throws Exception + */ + @Override + public String getPurchaseReturnList(String siteName, String user, String receiverequestname) throws Exception { + return ""; + } + + /** + * @param siteName + * @param user + * @param receiverequestname + * @return + * @throws Exception + */ + @Override + public String getPurchaseReturnInfo(String siteName, String user, String receiverequestname) throws Exception { + return ""; + } + + /** + * @param siteName + * @param user + * @param receiverequestname + * @param receiverequestdetailname + * @param receiveactno + * @param acttype + * @param receivequantity + * @param submaterialspecname + * @return + * @throws Exception + */ + @Override + public String purDessignOrAssign(String siteName, String user, String receiverequestname, String receiverequestdetailname, String receiveactno, String acttype, String receivequantity, String submaterialspecname) throws Exception { + return ""; + } + + /** + * @param siteName + * @param user + * @param receiverequestname + * @return + * @throws Exception + */ + @Override + public String getPurPackingInfo(String siteName, String user, String receiverequestname) throws Exception { + return ""; + } + + /** + * @param siteName + * @param user + * @param receiverequestname + * @return + * @throws Exception + */ + @Override + public String completeReceiveRequest(String siteName, String user, String receiverequestname) throws Exception { + //查找需要过账的采购退库信息 + List purchaseReturnBoxList = purchaseReturnServiceDao.getPurchaseReturnBoxList(siteName, receiverequestname); + //将 MaterialPacking的MaterialPackingName放入一个List中 + List purchaseReturnBoxListName = new ArrayList<>(); + for (MaterialPacking materialPacking : purchaseReturnBoxList) { + purchaseReturnBoxListName.add(materialPacking.getMaterialPackingName()); + } + //过账SAP + String undoId = toSAPServiceImpl.orderStockOut(receiverequestname, siteName, user, purchaseReturnBoxListName); + //更新库存状态 + toSapDao.updateStockState(purchaseReturnBoxList, "StockOut", undoId); + //更新出入库流水 + toSapDao.saveUnDoInfo(purchaseReturnBoxList, undoId, ""); + return ""; + } +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/PurchaseReturnService.java b/zi-wms-pda/src/main/java/com/cim/idm/service/PurchaseReturnService.java new file mode 100644 index 0000000..292883c --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/PurchaseReturnService.java @@ -0,0 +1,15 @@ +package com.cim.idm.service; + +public interface PurchaseReturnService { + + public String getPurchaseReturnList(String siteName, String user, String receiverequestname) throws Exception; + + public String getPurchaseReturnInfo(String siteName, String user, String receiverequestname) throws Exception; + + public String purDessignOrAssign(String siteName, String user, String receiverequestname, String receiverequestdetailname, String receiveactno, String acttype, String receivequantity, String submaterialspecname) throws Exception; + + + public String getPurPackingInfo(String siteName, String user, String receiverequestname) throws Exception; + + public String completeReceiveRequest(String siteName, String user, String receiverequestname) throws Exception; +} diff --git a/zi-wms-pda/src/main/resources/mapper/PurchaseReturnServiceDao.xml b/zi-wms-pda/src/main/resources/mapper/PurchaseReturnServiceDao.xml new file mode 100644 index 0000000..9d93bab --- /dev/null +++ b/zi-wms-pda/src/main/resources/mapper/PurchaseReturnServiceDao.xml @@ -0,0 +1,63 @@ + + + + + + + + + + +