Browse Source

amv补料接口

intex_20250617_panDian
刘忱 3 days ago
parent
commit
45db316fbf
  1. 4
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 91
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/outer/OuterController.java
  3. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/repleinshRequest/RepleinshRequestMainMapper.java
  4. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainService.java
  5. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainServiceImpl.java
  6. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainService.java
  7. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java

4
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java

@ -2014,8 +2014,10 @@ public interface ErrorCodeConstants {
ErrorCode DELI_NO_IS_ZERO = new ErrorCode(1_000_094_007, "便次数为0,不能创建!");
ErrorCode SHUN_YIN_PRODUCTIONRECEIPT_NO_DATA = new ErrorCode(1_000_094_008, "顺引收货数据不能为空");
ErrorCode SHUN_YIN_PACKING_NUMBER_ERROR = new ErrorCode(1_000_094_009, "条码【{}】错误");
ErrorCode PURCHASERECEIPT_NO_DATA = new ErrorCode(1_000_094_010, "采购收货【{}】不能为空");
ErrorCode PURCHASERECEIPT_NO_DATA = new ErrorCode(1_000_094_010, "采购收货单号【{}】不能为空");
ErrorCode CAN_NOT_REPEAT_PURCHASERECEIPT = new ErrorCode(1_000_094_011, "品番【{}】不能重复收货");
ErrorCode REPLEINSH_NO_DATA = new ErrorCode(1_000_094_012, "发料单号【{}】不能为空");
ErrorCode CAN_NOT_REPEAT_REPLEINSH = new ErrorCode(1_000_094_013, "包装【{}】不能重复发料");
ErrorCode RECEIVED_NUMBER_DELI_MAIN_NOT_EXISTS = new ErrorCode(1_000_090_000, "受入号便次主数据不存在");

91
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/outer/OuterController.java

@ -23,6 +23,7 @@ import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO;
import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestDetailDO;
import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO;
import com.win.module.wms.dal.dataobject.workshop.WorkshopDO;
@ -40,6 +41,10 @@ import com.win.module.wms.service.productreceiptRecord.ProductreceiptRecordMainS
import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordDetailService;
import com.win.module.wms.service.purchasereceiptRequest.PurchasereceiptRequestDetailService;
import com.win.module.wms.service.purchasereceiptRequest.PurchasereceiptRequestMainService;
import com.win.module.wms.service.repleinshJob.RepleinshJobMainService;
import com.win.module.wms.service.repleinshRecord.RepleinshRecordMainService;
import com.win.module.wms.service.repleinshRequest.RepleinshRequestDetailService;
import com.win.module.wms.service.repleinshRequest.RepleinshRequestMainService;
import com.win.module.wms.service.workshop.WorkshopService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
@ -109,6 +114,14 @@ public class OuterController {
private PurchasereceiptRequestDetailService purchasereceiptRequestDetailService;
@Resource
private PurchasereceiptRecordDetailService purchasereceiptRecordDetailService;
@Resource
private RepleinshRequestMainService repleinshRequestMainService;
@Resource
private RepleinshRequestDetailService repleinshRequestDetailService;
@Resource
private RepleinshJobMainService repleinshJobMainService;
@Resource
private RepleinshRecordMainService repleinshRecordMainService;
/**
* 对外提供一个接口通过header中的interfaceName反射机制调用方法方法必须写到这个controller中并且不用加PostMapping注解
@ -160,10 +173,36 @@ public class OuterController {
return this.productReceipt(body);
} else if("accountIntoOrder".equals(interfaceName)) {// 制品收货
return this.purchasereceiptReceipt(body);
} else if("accountOutOrder".equals(interfaceName)) {// 补料
return this.repleinsh(body);
}
throw exception(INTERFACE_ERROR);
}
/**
* 补料
* @param body 参数
* @return 结果
*/
private CommonResult<String> repleinsh(String body) {
AmvAccountOutOrder amvAccountOutOrder = JsonUtils.parseObject(body, AmvAccountOutOrder.class);
if(amvAccountOutOrder == null) {
throw exception(PURCHASERECEIPT_NO_DATA);
}
String number = amvAccountOutOrder.getReqCode();
//插入记录
Long hisId = insertHis(number, "accountOutOrder", body);
OuterApiHisDTO outerApiHisDTO = outerApiHisApi.getOuterApiHis(hisId,"TRUE");
try {
String recordNumber = this.insertRepleinsh(amvAccountOutOrder);
updateHis(outerApiHisDTO, recordNumber, true);
return CommonResult.success(recordNumber);
} catch (Exception e) {
updateHis(outerApiHisDTO, e.getMessage(), false);
throw e;
}
}
/**
* 采购收货
* @param body 参数
@ -315,10 +354,48 @@ public class OuterController {
updateHis(outerApiHisDTO, e.getMessage(), false);
throw e;
}
} else if("accountOutOrder".equals(outerApiHisDTO.getType())) { // 入库单据过账
try {
AmvAccountOutOrder amvAccountOutOrder = JsonUtils.parseObject(outerApiHisDTO.getContent(), AmvAccountOutOrder.class);
String number = this.insertRepleinsh(amvAccountOutOrder);
updateHis(outerApiHisDTO, number, true);
return CommonResult.success(number);
} catch (Exception e) {
updateHis(outerApiHisDTO, e.getMessage(), false);
throw e;
}
}
throw exception(INTERFACE_ERROR);
}
/**
* 创建补料记录
* @param amvAccountOutOrder 发料VO
* @return 结果
*/
private String insertRepleinsh(AmvAccountOutOrder amvAccountOutOrder) {
RepleinshRequestMainDO repleinshRequestMainDO = repleinshRequestMainService.getRepleinshRequestMainByNumber(amvAccountOutOrder.getReqCode());
if(repleinshRequestMainDO == null) {
throw exception(REPLEINSH_NO_DATA, amvAccountOutOrder.getReqCode());
}
List<RepleinshRequestDetailDO> repleinshRequestDetailDOList = repleinshRequestDetailService.selectList(repleinshRequestMainDO.getId());
List<RepleinshRequestDetailDO> tempList = new ArrayList<>();
for(AmvAccountOutOrder.AmvAccountOutOrderDetail amvAccountOutOrderDetail : amvAccountOutOrder.getData()) {
// 根据便次号查找
RepleinshRequestDetailDO repleinshRequestDetailDO = repleinshRequestDetailDOList.stream().filter(detail -> detail.getDeliNo().equals(amvAccountOutOrderDetail.getRealNum())).findFirst().orElse(null);
// 同一个包装不能重复收货
List<RepleinshRecordDetailDO> list = repleinshRecordMainService.selectListByPackingNumber(amvAccountOutOrder.getReqCode(), amvAccountOutOrderDetail.getOrderItem());
if(list != null && !list.isEmpty()) {
throw exception(CAN_NOT_REPEAT_REPLEINSH, amvAccountOutOrderDetail.getOrderItem());
}
// 数量以申请为准
// repleinshRequestDetailDO.setQty(new BigDecimal(repleinshRequestDetailDO.getQty()));
tempList.add(repleinshRequestDetailDO);
}
//return repleinshJobMainService.directlyGenerateRepleinshRecord(repleinshRequestMainDO, tempList);
return "";
}
/**
* 创建采购收货记录
* @param amvAccountIntoOrder 采收收货VO
@ -332,8 +409,8 @@ public class OuterController {
List<PurchasereceiptRequestDetailDO> purchasereceiptRequestDetailDOList = purchasereceiptRequestDetailService.selectList(purchasereceiptRequestMainDO.getId());
List<PurchasereceiptRequestDetailDO> tempList = new ArrayList<>();
for(AmvAccountIntoOrder.AmvAccountIntoOrderDetail amvAccountIntoOrderDetail : amvAccountIntoOrder.getData()) {
// 包装号后五位一致
PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO = purchasereceiptRequestDetailDOList.stream().filter(detail -> detail.getPackingNumber().substring(detail.getPackingNumber().length() - 5).equals(amvAccountIntoOrderDetail.getOrderItem())).findFirst().orElse(null);
// 根据包装号查找
PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO = purchasereceiptRequestDetailDOList.stream().filter(detail -> detail.getPackingNumber().equals(amvAccountIntoOrderDetail.getOrderItem())).findFirst().orElse(null);
// 同一个包装不能重复收货
List<PurchasereceiptRecordDetailDO> list = purchasereceiptRecordDetailService.selectListByPackingNumber(amvAccountIntoOrder.getReqCode(), purchasereceiptRequestDetailDO.getPackingNumber());
if(list != null && !list.isEmpty()) {
@ -730,6 +807,16 @@ public class OuterController {
updateHis(outerApiHisDTO, e.getMessage(), false);
fail +=1;
}
} else if("accountOutOrder".equals(outerApiHisDTO.getType())) { // 入库单据过账
try {
AmvAccountOutOrder amvAccountOutOrder = JsonUtils.parseObject(outerApiHisDTO.getContent(), AmvAccountOutOrder.class);
String number = this.insertRepleinsh(amvAccountOutOrder);
updateHis(outerApiHisDTO, number, true);
success +=1;
} catch (Exception e) {
updateHis(outerApiHisDTO, e.getMessage(), false);
fail +=1;
}
}
}
returnMap.put("message","批量选中:"+zs+"个重试记录,有效个数:"+actul+",重试成功个数:"+success+",重试失败个数:"+fail);

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/repleinshRequest/RepleinshRequestMainMapper.java

@ -8,7 +8,6 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestMainExportReqVO;
import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
@ -100,4 +99,8 @@ public interface RepleinshRequestMainMapper extends BaseMapperX<RepleinshRequest
return map;
}
default RepleinshRequestMainDO selectByNumber(String number) {
return selectOne(RepleinshRequestMainDO::getNumber, number);
}
}

23
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainService.java

@ -1,12 +1,17 @@
package com.win.module.wms.service.repleinshRecord;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.repleinshRecord.vo.*;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordMainCreateReqVO;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordMainExportReqVO;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordMainPageReqVO;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordMainDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 补料记录主 Service 接口
@ -77,4 +82,12 @@ public interface RepleinshRecordMainService {
List<RepleinshRecordMainDO> getRepleinshRecordMainList(RepleinshRecordMainExportReqVO exportReqVO);
List<RepleinshRecordMainDO> getRepleinshRecordMainList(CustomConditions conditions);
/**
* 根据包装号查找补料记录子
* @param requestNumber 申请单号
* @param packingNumber 包装号
* @return 结果
*/
List<RepleinshRecordDetailDO> selectListByPackingNumber(String requestNumber, String packingNumber);
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainServiceImpl.java

@ -22,6 +22,7 @@ import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordMainDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.balance.BalanceMapper;
@ -446,4 +447,12 @@ public class RepleinshRecordMainServiceImpl implements RepleinshRecordMainServic
return repleinshRecordMainMapper.selectSeniorList(conditions);
}
@Override
public List<RepleinshRecordDetailDO> selectListByPackingNumber(String requestNumber, String packingNumber) {
QueryWrapper<RepleinshRecordDetailDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("request_number", requestNumber);
queryWrapper.eq("to_packing_number", packingNumber);
return repleinshRecordDetailMapper.selectList(queryWrapper);
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainService.java

@ -2,7 +2,6 @@ package com.win.module.wms.service.repleinshRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.repleinshJob.vo.RepleinshJobMainUpdateReqVO;
import com.win.module.wms.controller.repleinshRequest.vo.*;
import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO;
@ -114,4 +113,6 @@ public interface RepleinshRequestMainService {
String executeRequest(RepleinshRequestMainUpdateReqVO updateReqVO);
Long getRepleinshRequestCountPda();
RepleinshRequestMainDO getRepleinshRequestMainByNumber(String number);
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java

@ -2385,4 +2385,9 @@ public class RepleinshRequestMainServiceImpl implements RepleinshRequestMainServ
}
}
@Override
public RepleinshRequestMainDO getRepleinshRequestMainByNumber(String number) {
return repleinshRequestMainMapper.selectByNumber(number);
}
}

Loading…
Cancel
Save