opt:优化ERP单据回传
This commit is contained in:
@@ -25,10 +25,10 @@ public enum StatusEnum {
|
|||||||
FORM_STATUS(ForkMap.of("生成", "10", null, "已分配", "13", null, "下发", "15", null, "执行中", "20", null, "暂停", "30", null, "完成", "80", null, "强制完成", "82", null, "取消", "90", null)),
|
FORM_STATUS(ForkMap.of("生成", "10", null, "已分配", "13", null, "下发", "15", null, "执行中", "20", null, "暂停", "30", null, "完成", "80", null, "强制完成", "82", null, "取消", "90", null)),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 出入库单据类型
|
* 出入库单据类型退货出库
|
||||||
*/
|
*/
|
||||||
IOBILL_TYPE_IN(ForkMap.of("生产入库", "10", "inStorageTask", "调拨入库", "11", "inStorageTask", "退货入库", "12", "inStorageTask", "拣选回库", "13", "inStorageTask", "盘点入库", "14", "inStorageTask", "托盘入库", "30", "inStorageTask", "二楼CTU入库", "80", "inStorageTask")),
|
IOBILL_TYPE_IN(ForkMap.of("生产入库", "10", "inStorageTask", "调拨入库", "11", "inStorageTask", "退货入库", "12", "inStorageTask", "拣选回库", "13", "inStorageTask", "盘点入库", "14", "inStorageTask", "托盘入库", "30", "inStorageTask", "二楼CTU入库", "80", "inStorageTask")),
|
||||||
IOBILL_TYPE_OUT(ForkMap.of("销售出库", "20", "outStorageTask", "生产出库", "21", "outStorageTask", "调拨出库", "22", "outStorageTask", "拣选出库", "23", "conveyorOutStorageTask", "盘点出库", "24", "outStorageTask", "出库拣选", "25", "toPickPlatformTask", "托盘出库", "40", "outStorageTask", "二楼CTU出库", "81", "inStorageTask", "二楼出库AGV搬运", "82", "inStorageTask", "二楼空架AGV搬运", "83", "inStorageTask")),
|
IOBILL_TYPE_OUT(ForkMap.of("销售出库", "20", "outStorageTask", "生产出库", "21", "outStorageTask", "调拨出库", "22", "outStorageTask", "拣选出库", "23", "conveyorOutStorageTask", "盘点出库", "24", "outStorageTask", "出库拣选", "25", "toPickPlatformTask", "退货出库", "26", "outStorageTask", "托盘出库", "40", "outStorageTask", "二楼CTU出库", "81", "inStorageTask", "二楼出库AGV搬运", "82", "inStorageTask", "二楼空架AGV搬运", "83", "inStorageTask")),
|
||||||
IOBILL_TYPE_MOVE(ForkMap.of("移库", "50", "moveStorageTask", "异常位移库", "51", "moveStorageTask")),
|
IOBILL_TYPE_MOVE(ForkMap.of("移库", "50", "moveStorageTask", "异常位移库", "51", "moveStorageTask")),
|
||||||
EXT_TASK_TYPE(ForkMap.of("盘点", "60", "moveStorageTask")),
|
EXT_TASK_TYPE(ForkMap.of("盘点", "60", "moveStorageTask")),
|
||||||
OTHER_TASK_TYPE(ForkMap.of("转运", "70", "tranforTask")),
|
OTHER_TASK_TYPE(ForkMap.of("转运", "70", "tranforTask")),
|
||||||
@@ -39,7 +39,7 @@ public enum StatusEnum {
|
|||||||
*/
|
*/
|
||||||
ERP_TYPE(ForkMap.of("PRD_MO", "10", "生产订单", "PUR_ReceiveBill", "11", "收料通知单",
|
ERP_TYPE(ForkMap.of("PRD_MO", "10", "生产订单", "PUR_ReceiveBill", "11", "收料通知单",
|
||||||
"SAL_SaleOrder", "12", "销售订单", "PRD_INSTOCK", "13", "生产入库单", "STK_InStock", "14", "采购入库单",
|
"SAL_SaleOrder", "12", "销售订单", "PRD_INSTOCK", "13", "生产入库单", "STK_InStock", "14", "采购入库单",
|
||||||
"PRD_PPBOM", "20", "生产用料清单", "PRD_PickMtrl", "21", "生产领料单",
|
"SUB_PickMtrl", "19", "委外用料清单", "PRD_PPBOM", "20", "生产用料清单", "PRD_PickMtrl", "21", "生产领料单",
|
||||||
"SP_PickMtrl", "22", "简单生产领料单",
|
"SP_PickMtrl", "22", "简单生产领料单",
|
||||||
"STK_TransferDirect", "23", "调拨出库单", "SAL_RETURNSTOCK", "24", "销售退货单",
|
"STK_TransferDirect", "23", "调拨出库单", "SAL_RETURNSTOCK", "24", "销售退货单",
|
||||||
"PUR_MRB", "25", "采购退料单", "STK_MisDelivery", "26", "其他出库单")),
|
"PUR_MRB", "25", "采购退料单", "STK_MisDelivery", "26", "其他出库单")),
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public class SchBaseTaskController {
|
|||||||
@GetMapping("/taskSchedule")
|
@GetMapping("/taskSchedule")
|
||||||
@Log("任务调度")
|
@Log("任务调度")
|
||||||
public ResponseEntity<Object> taskSchedule() {
|
public ResponseEntity<Object> taskSchedule() {
|
||||||
taskScheduleService.taskPublish();
|
iSchBaseTaskService.deleteCtuStruct();
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
@GetMapping("/taskMsgSchedule")
|
@GetMapping("/taskMsgSchedule")
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
|
|||||||
* @param ids /
|
* @param ids /
|
||||||
*/
|
*/
|
||||||
void deleteAll(Set<String> ids);
|
void deleteAll(Set<String> ids);
|
||||||
|
public void deleteCtuStruct();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务操作
|
* 任务操作
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ public interface SchBaseTaskMapper extends BaseMapper<SchBaseTask> {
|
|||||||
|
|
||||||
List<Map> getIoSourceFormData(@Param("vehicle_code") String vehicle_code, @Param("pcsn") String pcsn);
|
List<Map> getIoSourceFormData(@Param("vehicle_code") String vehicle_code, @Param("pcsn") String pcsn);
|
||||||
|
|
||||||
|
int updateVehiclemater();
|
||||||
|
|
||||||
|
int updateStructattr();
|
||||||
|
|
||||||
|
|
||||||
List<SchBaseTask> getTaskList(Set<String> pointCodes1, Set<String> pointCodes2, Set<String> pointCodes3, Set<String> pointCodes4);
|
List<SchBaseTask> getTaskList(Set<String> pointCodes1, Set<String> pointCodes2, Set<String> pointCodes3, Set<String> pointCodes4);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,4 +106,10 @@
|
|||||||
AND (status <![CDATA[ < ]]> '80')
|
AND (status <![CDATA[ < ]]> '80')
|
||||||
AND (is_delete = '0')
|
AND (is_delete = '0')
|
||||||
</select>
|
</select>
|
||||||
|
<update id="updateVehiclemater">
|
||||||
|
UPDATE `md_pb_vehiclemater` SET is_delete='1' WHERE vehicle_code in (SELECT vehicle_code FROM `st_ivt_structattr` WHERE stor_code ='CStockId' AND vehicle_code IS NOT NULL AND lock_type ='00')
|
||||||
|
</update>
|
||||||
|
<update id="updateStructattr">
|
||||||
|
UPDATE `st_ivt_structattr` SET vehicle_code=null,lock_type='00' WHERE stor_code ='CStockId' AND vehicle_code IS NOT NULL AND lock_type ='00'
|
||||||
|
</update>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -71,6 +72,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
private WmsToAcsService wmsToAcsService;
|
private WmsToAcsService wmsToAcsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPmFormDataService iPmFormDataService;
|
private IPmFormDataService iPmFormDataService;
|
||||||
|
@Autowired
|
||||||
|
private SchBaseTaskMapper schBaseTaskMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<SchBaseTask> queryAll(SchBaseTaskQuery whereJson, PageQuery page) {
|
public IPage<SchBaseTask> queryAll(SchBaseTaskQuery whereJson, PageQuery page) {
|
||||||
@@ -122,6 +125,13 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
this.removeByIds(ids);
|
this.removeByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void deleteCtuStruct() {
|
||||||
|
schBaseTaskMapper.updateVehiclemater();
|
||||||
|
schBaseTaskMapper.updateStructattr();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void create(SchBaseTask entity) {
|
public void create(SchBaseTask entity) {
|
||||||
String nickName = SecurityUtils.getCurrentNickName();
|
String nickName = SecurityUtils.getCurrentNickName();
|
||||||
@@ -159,11 +169,6 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
if (ObjectUtils.isEmpty(vehicleMaterList)) {
|
if (ObjectUtils.isEmpty(vehicleMaterList)) {
|
||||||
throw new BadRequestException("当前任务未找到组盘信息");
|
throw new BadRequestException("当前任务未找到组盘信息");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(vehicleMaterList.get(0).getProc_inst_id())) {
|
|
||||||
FlowContinueEvent continueEvent = new FlowContinueEvent(vehicleMaterList.get(0).getProc_inst_id(), null, null);
|
|
||||||
if (ObjectUtil.isEmpty(vehicleMaterList)) {
|
|
||||||
throw new BadRequestException("任务完成失败,到载具物料信息: " + task.getVehicle_code());
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(vehicleMaterList.get(0).getProc_inst_id())) {
|
if (StringUtils.isNotBlank(vehicleMaterList.get(0).getProc_inst_id())) {
|
||||||
FlowContinueEvent continueEvent = new FlowContinueEvent(vehicleMaterList.get(0).getProc_inst_id(), null, null);
|
FlowContinueEvent continueEvent = new FlowContinueEvent(vehicleMaterList.get(0).getProc_inst_id(), null, null);
|
||||||
BussEventMulticaster.Publish(continueEvent);
|
BussEventMulticaster.Publish(continueEvent);
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public class SyncReceiptProcessHandler implements ClassProcess {
|
|||||||
res = JSONObject.parseObject(result);
|
res = JSONObject.parseObject(result);
|
||||||
}
|
}
|
||||||
JSONObject responseStatus = res.getJSONObject("Result").getJSONObject("ResponseStatus");
|
JSONObject responseStatus = res.getJSONObject("Result").getJSONObject("ResponseStatus");
|
||||||
boolean isSuccess = responseStatus.getBooleanValue("IsSuccess");
|
boolean isSuccess = responseStatus.getBooleanValue ("IsSuccess");
|
||||||
JSONArray errors = responseStatus.getJSONArray("Errors");
|
JSONArray errors = responseStatus.getJSONArray("Errors");
|
||||||
String errorMessages = "";
|
String errorMessages = "";
|
||||||
if (ObjectUtils.isNotEmpty(errors)) {
|
if (ObjectUtils.isNotEmpty(errors)) {
|
||||||
@@ -237,5 +237,33 @@ public class SyncReceiptProcessHandler implements ClassProcess {
|
|||||||
fEntity.putAll(tempMap);
|
fEntity.putAll(tempMap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ("RECEIPT_SUB_PickMtrl".equals(formType)) {
|
||||||
|
for (int i = 0; i < fEntityArray.size(); i++) {
|
||||||
|
JSONObject fEntity = fEntityArray.getJSONObject(i);
|
||||||
|
Map<String, Object> linkedMap = new LinkedHashMap<>();
|
||||||
|
for (String key : fEntity.keySet()) {
|
||||||
|
linkedMap.put(key, fEntity.get(key));
|
||||||
|
}
|
||||||
|
Map<String, Object> tempMap = new LinkedHashMap<>();
|
||||||
|
for (Map.Entry<String, Object> entry : linkedMap.entrySet()) {
|
||||||
|
tempMap.put(entry.getKey(), entry.getValue());
|
||||||
|
}
|
||||||
|
JSONArray fEntityLinkArray = new JSONArray();
|
||||||
|
JSONObject fEntityLink = new JSONObject();
|
||||||
|
fEntityLink.put("FEntity_Link_FFlowLineId", 6);
|
||||||
|
fEntityLink.put("FEntity_Link_FBaseActualQty", fEntity.getString("FActualQty"));
|
||||||
|
fEntityLink.put("FEntity_Link_FSId",fEntity.getString("FSrcEntryId"));
|
||||||
|
fEntityLink.put("FEntity_Link_FBaseActualQtyOld", fEntity.getString("FBaseActualQty"));
|
||||||
|
fEntityLink.put("FEntity_Link_FRuleId", "SUB_PPBOM_Pick");
|
||||||
|
fEntityLink.put("FEntity_Link_FSTableId", 0);
|
||||||
|
fEntityLink.put("FEntity_Link_FFlowId","0b064121-4926-4808-8632-a195b6a202e8");
|
||||||
|
fEntityLink.put("FEntity_Link_FSBillId",fEntity.getString("FSrcInterId"));
|
||||||
|
fEntityLink.put("FEntity_Link_FSTableName", "T_SUB_PPBOMENTRY");
|
||||||
|
fEntityLinkArray.add(fEntityLink);
|
||||||
|
tempMap.put("FEntity_Link", fEntityLinkArray);
|
||||||
|
fEntity.clear();
|
||||||
|
fEntity.putAll(tempMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,8 @@ public class PdaOutController {
|
|||||||
// result.add(MapOf.of("text",formStruc.getForm_name(),"value",formStruc.getForm_type()));
|
// result.add(MapOf.of("text",formStruc.getForm_name(),"value",formStruc.getForm_type()));
|
||||||
// }
|
// }
|
||||||
result.add(MapOf.of("text","生产用料清单","value","PRD_PPBOM"));
|
result.add(MapOf.of("text","生产用料清单","value","PRD_PPBOM"));
|
||||||
//result.add(MapOf.of("text","委外用料清单","value","SUB_PickMtrl"));
|
result.add(MapOf.of("text","委外用料清单","value","SUB_PPBOM"));
|
||||||
|
result.add(MapOf.of("text","采购退料单","value","PUR_MRB"));
|
||||||
result.add(MapOf.of("text","直接调拨单","value","STK_TransferDirect"));
|
result.add(MapOf.of("text","直接调拨单","value","STK_TransferDirect"));
|
||||||
result.add(MapOf.of("text","简单领料申请单","value","ka7c19edf9d4b4b39b8cc4a06802163b0"));
|
result.add(MapOf.of("text","简单领料申请单","value","ka7c19edf9d4b4b39b8cc4a06802163b0"));
|
||||||
result.add(MapOf.of("text","其他出库单","value","STK_MisDelivery"));
|
result.add(MapOf.of("text","其他出库单","value","STK_MisDelivery"));
|
||||||
|
|||||||
@@ -408,6 +408,9 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
|||||||
child.setPcsn("");
|
child.setPcsn("");
|
||||||
} else {
|
} else {
|
||||||
for (StructAssignQty assignQty : maps) {
|
for (StructAssignQty assignQty : maps) {
|
||||||
|
if (StringUtils.isBlank(assignQty.getPcsn())) {
|
||||||
|
throw new BadRequestException(assignQty.getMaterial_id() + "该物料批次号为空!请检查!");
|
||||||
|
}
|
||||||
if (assignQty.getPcsn().equals(child.getPcsn())) {
|
if (assignQty.getPcsn().equals(child.getPcsn())) {
|
||||||
child.setSto_qty(assignQty.getSto_qty());
|
child.setSto_qty(assignQty.getSto_qty());
|
||||||
child.setPcsn(assignQty.getPcsn());
|
child.setPcsn(assignQty.getPcsn());
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import org.springframework.context.annotation.Lazy;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
@@ -84,6 +83,7 @@ public class SyncErpBillsScheduleService {
|
|||||||
"STK_TransferDirect", "FStockOrgId",
|
"STK_TransferDirect", "FStockOrgId",
|
||||||
"SAL_RETURNSTOCK", "FStockOrgId",
|
"SAL_RETURNSTOCK", "FStockOrgId",
|
||||||
"PUR_MRB", "FStockOrgId",
|
"PUR_MRB", "FStockOrgId",
|
||||||
|
"SUB_PickMtrl", "FStockOrgId",
|
||||||
"STK_MisDelivery", "FStockOrgId");
|
"STK_MisDelivery", "FStockOrgId");
|
||||||
//仓库信息
|
//仓库信息
|
||||||
private static final Map<String, String> BILL_STOCK_ID_MAPPING = MapOf.of(
|
private static final Map<String, String> BILL_STOCK_ID_MAPPING = MapOf.of(
|
||||||
@@ -302,6 +302,7 @@ public class SyncErpBillsScheduleService {
|
|||||||
.set(PmFormData::getUnit_id, f.getUnit_id())
|
.set(PmFormData::getUnit_id, f.getUnit_id())
|
||||||
.set(PmFormData::getForm_data, JSON.toJSONString(f.getForm_data()))
|
.set(PmFormData::getForm_data, JSON.toJSONString(f.getForm_data()))
|
||||||
.set(PmFormData::getPlan_qty, f.getPlan_qty())
|
.set(PmFormData::getPlan_qty, f.getPlan_qty())
|
||||||
|
.set(PmFormData::getActual_qty, f.getActual_qty())
|
||||||
.set(PmFormData::getTaxPrice, f.getActual_qty())
|
.set(PmFormData::getTaxPrice, f.getActual_qty())
|
||||||
.set(PmFormData::getBar_code, f.getBar_code())
|
.set(PmFormData::getBar_code, f.getBar_code())
|
||||||
.set(PmFormData::getUpdate_name, DateUtil.now())
|
.set(PmFormData::getUpdate_name, DateUtil.now())
|
||||||
@@ -382,6 +383,13 @@ public class SyncErpBillsScheduleService {
|
|||||||
JSONArray mappingJsonArray = JSONArray.parseArray(mappingJson);
|
JSONArray mappingJsonArray = JSONArray.parseArray(mappingJson);
|
||||||
List<PmFormData> formDataList = formDataService.syncAnalyse(mappingJsonArray, formType, dtlSplit, JSON.toJSONString(r));
|
List<PmFormData> formDataList = formDataService.syncAnalyse(mappingJsonArray, formType, dtlSplit, JSON.toJSONString(r));
|
||||||
if (formDataList != null) {
|
if (formDataList != null) {
|
||||||
|
String assistUint = "0";
|
||||||
|
JSONArray uintJsonArray = JSONObject.parseObject(JSON.toJSONString(r)).getJSONArray("MaterialStock");
|
||||||
|
if (ObjectUtils.isNotEmpty(uintJsonArray)) {
|
||||||
|
JSONObject u1 = JSONObject.parseObject(JSON.toJSONString(uintJsonArray.get(0)));
|
||||||
|
JSONObject u2 = u1.getJSONObject("AuxUnitID");
|
||||||
|
assistUint = u2 != null ? u2.getString("Number") : "0";
|
||||||
|
}
|
||||||
PmFormData mainFormData = formDataList.stream().filter(rs1 -> "BD_MATERIAL".equals(rs1.getForm_type())).collect(Collectors.toList()).get(0);
|
PmFormData mainFormData = formDataList.stream().filter(rs1 -> "BD_MATERIAL".equals(rs1.getForm_type())).collect(Collectors.toList()).get(0);
|
||||||
JSONObject object = mainFormData.getForm_data();
|
JSONObject object = mainFormData.getForm_data();
|
||||||
String m_code = object.getString("m_code");
|
String m_code = object.getString("m_code");
|
||||||
@@ -396,7 +404,7 @@ public class SyncErpBillsScheduleService {
|
|||||||
materialBase.setMaterial_name(m_name);
|
materialBase.setMaterial_name(m_name);
|
||||||
materialBase.setMaterial_spec(m_spec);
|
materialBase.setMaterial_spec(m_spec);
|
||||||
materialBase.setQty_unit_id(m_unit);
|
materialBase.setQty_unit_id(m_unit);
|
||||||
materialBase.setAssist_unit_id(formData.getVehicle_code());
|
materialBase.setAssist_unit_id(assistUint);
|
||||||
materialBase.setPrint_no(formData.getPcsn());
|
materialBase.setPrint_no(formData.getPcsn());
|
||||||
iMdMeMaterialbaseService.save(materialBase);
|
iMdMeMaterialbaseService.save(materialBase);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ public class TaskScheduleService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void taskPublish(){
|
public void taskPublish(){
|
||||||
boolean islock = lock.tryLock();
|
boolean islock = lock.tryLock();
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user