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