fix:需求单失效删除逻辑;倒冲库存查询按钮;
add:报工单唯一id校验;
This commit is contained in:
@@ -6,19 +6,15 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.annotation.Mock;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.nl.wms.ext_manage.enums.EXTConstant;
|
||||
import org.nl.wms.ext_manage.mes.service.MesResponse;
|
||||
import org.nl.wms.ext_manage.mes.service.dto.WorkOrderBomItem;
|
||||
import org.nl.wms.ext_manage.util.AcsUtil;
|
||||
import org.nl.wms.pm_manage.demand.service.dao.PmDemand;
|
||||
import org.nl.wms.system_manage.enums.SysParamConstant;
|
||||
import org.nl.wms.system_manage.service.param.dao.Param;
|
||||
import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;import org.nl.common.base.ResponseData;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
@@ -95,4 +91,29 @@ public class MesApi {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 需求单删除
|
||||
*/
|
||||
public void delMesDemand(String id){
|
||||
final Param param = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.MES_URL_DEMAND_DEL);
|
||||
if (param ==null){
|
||||
throw new BadRequestException("请传MES失败,未配置MES_URL地址");
|
||||
}
|
||||
String url = param.getValue();
|
||||
try {
|
||||
JSONObject requestParam = new JSONObject();
|
||||
requestParam.put("reqId",id);
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(requestParam.toJSONString())
|
||||
.execute().body();
|
||||
JSONObject result = JSONObject.parseObject(resultMsg);
|
||||
Integer respCode = result.getInteger("ResultCode");
|
||||
if (respCode == null || respCode != 0) {
|
||||
throw new BadRequestException("同步删除MES需求单"+id+"失败:" + result.getString("Message"));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new BadRequestException("同步删除MES需求单异常:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ public class ReceiveOutRequest {
|
||||
private String cztype;
|
||||
private String workArea;
|
||||
private String trackNo;
|
||||
private String bizid;
|
||||
private List<Entrys> entrys;
|
||||
|
||||
@Data
|
||||
|
||||
@@ -42,7 +42,8 @@ public class MesReportServiceImpl implements MesReportService {
|
||||
try {
|
||||
if (!StringUtils.isEmpty(workReportParam.getSn())){
|
||||
int count = iReceiveOutReturnService.count(new LambdaQueryWrapper<ReceiveOutReturn>()
|
||||
.eq(ReceiveOutReturn::getSn, workReportParam.getSn()));
|
||||
.eq(ReceiveOutReturn::getSn, workReportParam.getSn())
|
||||
.ne(ReceiveOutReturn::getStatus, StockReturnStatusEnum.ERROR.getCode()));
|
||||
if (count > 0) {
|
||||
throw new BadRequestException("报工倒扣同步失败,SN码重复");
|
||||
}
|
||||
@@ -82,6 +83,7 @@ public class MesReportServiceImpl implements MesReportService {
|
||||
sideDto.setReportParam(JSON.toJSONString(workReportParam));
|
||||
sideDto.setTrackNo(workReportParam.getTrackNo());
|
||||
sideDto.setWorkArea(workReportParam.getWorkArea());
|
||||
sideDto.setBizid(workReportParam.getId());
|
||||
pdaIosOutService.directConfirmByAfter(sideDto);
|
||||
}catch (Exception ex){
|
||||
log.error("报工回传异常:{}",ex);
|
||||
@@ -92,6 +94,7 @@ public class MesReportServiceImpl implements MesReportService {
|
||||
entity.setInvscheme("002");
|
||||
entity.setTranstype("020");
|
||||
entity.setBiztime(LocalDate.now().toString());
|
||||
entity.setBizid(workReportParam.getId());
|
||||
entity.setDeptno("01.09.14.02");
|
||||
entity.setRequserno("WMS");
|
||||
entity.setRequsername("WMS");
|
||||
|
||||
@@ -434,6 +434,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
receiveOutRequest.setDeptno("01.09.14.02");
|
||||
receiveOutRequest.setTrackNo(param.getTrackNo());
|
||||
receiveOutRequest.setWorkArea(param.getWorkArea());
|
||||
receiveOutRequest.setBizid(param.getBizid());
|
||||
receiveOutRequest.setEntrys(entrys);
|
||||
ReceiveOutReturn entity = receiveOutReturnService.saveFromRequest(
|
||||
receiveOutRequest, StockReturnStatusEnum.TODO.getCode(), null,null,param.getReportParam());
|
||||
|
||||
@@ -30,5 +30,6 @@ public class LineSideDto {
|
||||
private String reportParam;
|
||||
private String trackNo;
|
||||
private String workArea;
|
||||
private String bizid;
|
||||
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.ext_manage.api.MesApi;
|
||||
import org.nl.wms.ext_manage.enums.EXTConstant;
|
||||
import org.nl.wms.ext_manage.service.WmsToZDWmdService;
|
||||
import org.nl.wms.ext_manage.service.dto.ZDInventory;
|
||||
@@ -77,6 +78,8 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
||||
|
||||
@Autowired
|
||||
private IPmStockReturnService iPmStockReturnService;
|
||||
@Autowired
|
||||
private MesApi mesApi;
|
||||
|
||||
@Override
|
||||
public Page<PmDemandDto> queryPage(PmDemandQuery query, PageQuery pageQuery) {
|
||||
@@ -114,18 +117,38 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
||||
|
||||
@Override
|
||||
public void batchCreate(List<PmDemandParam> param) {
|
||||
final List<String> orders = param.stream().map(PmDemandParam::getWorkOrder).collect(Collectors.toList());
|
||||
final int count = this.count(new LambdaQueryWrapper<PmDemand>()
|
||||
.in(PmDemand::getWork_order, orders)
|
||||
.eq(PmDemand::getIs_deleted,0));
|
||||
if (count>0){
|
||||
throw new BadRequestException("MES推送需求单失败,需求单已存在");
|
||||
final List<String> orders = param.stream()
|
||||
.filter(item-> !Objects.equals(item.getStatus(), "1"))
|
||||
.map(PmDemandParam::getWorkOrder).collect(Collectors.toList());
|
||||
if (!orders.isEmpty()){
|
||||
final int count = this.count(new LambdaQueryWrapper<PmDemand>()
|
||||
.in(PmDemand::getWork_order, orders)
|
||||
.eq(PmDemand::getIs_deleted,0));
|
||||
if (count>0){
|
||||
throw new BadRequestException("MES推送需求单失败,需求单已存在");
|
||||
}
|
||||
}
|
||||
for (PmDemandParam pmDemandParam : param) {
|
||||
if (Objects.equals(pmDemandParam.getStatus(), "1")){
|
||||
pmDemandParam.setStatus(DemandStatus.CANCEL.getValue());
|
||||
PmDemand demand = new PmDemand();
|
||||
demand.setId(pmDemandParam.getId());
|
||||
demand.setCreator(pmDemandParam.getCreator());
|
||||
demand.setCreate_time(pmDemandParam.getCreateTime());
|
||||
demand.setPriority(pmDemandParam.getPriority());
|
||||
demand.setStatus(pmDemandParam.getStatus());
|
||||
demand.setWork_order(pmDemandParam.getWorkOrder());
|
||||
demand.setSku_code(pmDemandParam.getSkuCode());
|
||||
demand.setSku_name(pmDemandParam.getSkuName());
|
||||
demand.setQty(pmDemandParam.getQty());
|
||||
demand.setUnit(pmDemandParam.getUnit());
|
||||
demand.setTarget_area(pmDemandParam.getTargetArea());
|
||||
demand.setProduction_line(pmDemandParam.getProductionLine());
|
||||
demand.setSn(pmDemandParam.getSn());
|
||||
this.updateById(demand);
|
||||
}else{
|
||||
this.create(pmDemandParam);
|
||||
}
|
||||
this.create(pmDemandParam);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,12 +184,19 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
||||
}
|
||||
final List<PmDemand> pmDemands = this.listByIds(ids);
|
||||
for (PmDemand pmDemand : pmDemands) {
|
||||
if (!pmDemand.getStatus().equals(DemandStatus.CREATE.getValue()) && !pmDemand.getStatus().equals(DemandStatus.DIS.getValue())){
|
||||
if (!pmDemand.getStatus().equals(DemandStatus.CREATE.getValue())
|
||||
&& !pmDemand.getStatus().equals(DemandStatus.DIS.getValue())){
|
||||
throw new BadRequestException("删除失败,已经执行的需求单无法删除");
|
||||
}
|
||||
}
|
||||
this.update(new LambdaUpdateWrapper<PmDemand>().in(PmDemand::getId,ids)
|
||||
.set(PmDemand::getIs_deleted,1));
|
||||
for (String id : ids) {
|
||||
mesApi.delMesDemand(id);
|
||||
this.update(new LambdaUpdateWrapper<PmDemand>()
|
||||
.eq(PmDemand::getId,id)
|
||||
.set(PmDemand::getIs_deleted,1));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -261,7 +291,8 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
||||
}
|
||||
final int disCount = this.count(new LambdaQueryWrapper<PmDemand>()
|
||||
.in(PmDemand::getId, pmDemandDtos.stream().map(PmDemandDto::getId).collect(Collectors.toList()))
|
||||
.eq(PmDemand::getStatus,DemandStatus.DIS.getValue()));
|
||||
.eq(PmDemand::getStatus,DemandStatus.DIS.getValue())
|
||||
.ne(PmDemand::getIs_deleted, 1));
|
||||
if (disCount<pmDemandDtos.size()){
|
||||
throw new BadRequestException("下推失败,单据状态不为已分配不能下推");
|
||||
}
|
||||
@@ -269,7 +300,8 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
||||
.in(PmDemand::getWork_order, pmDemandDtos.stream()
|
||||
.map(PmDemandDto::getWorkOrder)
|
||||
.distinct()
|
||||
.collect(Collectors.toList())));
|
||||
.collect(Collectors.toList()))
|
||||
.ne(PmDemand::getIs_deleted, 1));
|
||||
if (pmDemandDtos.size() < allWorkCount){
|
||||
throw new BadRequestException("存在未勾选完全的工单");
|
||||
}
|
||||
@@ -302,7 +334,8 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
||||
final List<PmDemandDto> demandDtos = groupByWorkOrder.get(workOrder);
|
||||
final int orderCount = this.count(new LambdaQueryWrapper<PmDemand>()
|
||||
.eq(PmDemand::getWork_order, workOrder)
|
||||
.in(PmDemand::getInventory_dis, ZD_STOR_SET));
|
||||
.in(PmDemand::getInventory_dis, ZD_STOR_SET)
|
||||
.ne(PmDemand::getIs_deleted, 1));
|
||||
if (orderCount > demandDtos.size()){
|
||||
throw new BadRequestException("工单"+workOrder+"下推中鼎失败,存在未勾选的单子");
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ public class SysParamConstant {
|
||||
*/
|
||||
public final static String MES_URL_BOM = "MES_URL_BOM";
|
||||
public final static String MES_URL_DEMAND_CALL = "MES_URL_DEMAND_CALL";
|
||||
public final static String MES_URL_DEMAND_DEL = "MES_URL_DEMAND_DEL";
|
||||
/**
|
||||
* 打印机ip
|
||||
*/
|
||||
|
||||
@@ -20,6 +20,7 @@ public class ReceiveOutReturn implements Serializable {
|
||||
private String orgno;
|
||||
private String billno;
|
||||
private String biztype;
|
||||
private String bizid;
|
||||
private String invscheme;
|
||||
private String transtype;
|
||||
private String biztime;
|
||||
|
||||
@@ -205,6 +205,7 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
||||
entity.setReportParam(reportParam);
|
||||
entity.setWorkArea(request.getWorkArea());
|
||||
entity.setTrackNo(request.getTrackNo());
|
||||
entity.setBizid(request.getBizid());
|
||||
this.save(entity);
|
||||
saveRequestDetails(entity.getId(), request.getEntrys(), ioBillCode);
|
||||
return entity;
|
||||
|
||||
@@ -176,6 +176,7 @@
|
||||
<el-table-column prop="materialno" label="物料编号" min-width="120" />
|
||||
<el-table-column prop="materialname" label="物料名称" min-width="180" />
|
||||
<el-table-column prop="unitno" label="单位" min-width="70" />
|
||||
<el-table-column prop="easQty" label="库存信息" min-width="100" />
|
||||
<el-table-column prop="baseqty" label="BOM数量" min-width="50" />
|
||||
<el-table-column prop="warehouseno" label="仓库" min-width="60" />
|
||||
<el-table-column prop="remark" label="备注" min-width="180" />
|
||||
|
||||
Reference in New Issue
Block a user