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)),
|
||||
|
||||
/**
|
||||
* 出入库单据类型
|
||||
* 出入库单据类型退货出库
|
||||
*/
|
||||
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")),
|
||||
EXT_TASK_TYPE(ForkMap.of("盘点", "60", "moveStorageTask")),
|
||||
OTHER_TASK_TYPE(ForkMap.of("转运", "70", "tranforTask")),
|
||||
@@ -39,7 +39,7 @@ public enum StatusEnum {
|
||||
*/
|
||||
ERP_TYPE(ForkMap.of("PRD_MO", "10", "生产订单", "PUR_ReceiveBill", "11", "收料通知单",
|
||||
"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", "简单生产领料单",
|
||||
"STK_TransferDirect", "23", "调拨出库单", "SAL_RETURNSTOCK", "24", "销售退货单",
|
||||
"PUR_MRB", "25", "采购退料单", "STK_MisDelivery", "26", "其他出库单")),
|
||||
|
||||
@@ -86,7 +86,7 @@ public class SchBaseTaskController {
|
||||
@GetMapping("/taskSchedule")
|
||||
@Log("任务调度")
|
||||
public ResponseEntity<Object> taskSchedule() {
|
||||
taskScheduleService.taskPublish();
|
||||
iSchBaseTaskService.deleteCtuStruct();
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@GetMapping("/taskMsgSchedule")
|
||||
|
||||
@@ -55,6 +55,7 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
|
||||
* @param 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);
|
||||
|
||||
int updateVehiclemater();
|
||||
|
||||
int updateStructattr();
|
||||
|
||||
|
||||
List<SchBaseTask> getTaskList(Set<String> pointCodes1, Set<String> pointCodes2, Set<String> pointCodes3, Set<String> pointCodes4);
|
||||
}
|
||||
|
||||
@@ -106,4 +106,10 @@
|
||||
AND (status <![CDATA[ < ]]> '80')
|
||||
AND (is_delete = '0')
|
||||
</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>
|
||||
|
||||
@@ -41,6 +41,7 @@ import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.*;
|
||||
@@ -71,6 +72,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
private WmsToAcsService wmsToAcsService;
|
||||
@Autowired
|
||||
private IPmFormDataService iPmFormDataService;
|
||||
@Autowired
|
||||
private SchBaseTaskMapper schBaseTaskMapper;
|
||||
|
||||
@Override
|
||||
public IPage<SchBaseTask> queryAll(SchBaseTaskQuery whereJson, PageQuery page) {
|
||||
@@ -122,6 +125,13 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
this.removeByIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteCtuStruct() {
|
||||
schBaseTaskMapper.updateVehiclemater();
|
||||
schBaseTaskMapper.updateStructattr();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void create(SchBaseTask entity) {
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
@@ -159,11 +169,6 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
if (ObjectUtils.isEmpty(vehicleMaterList)) {
|
||||
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())) {
|
||||
FlowContinueEvent continueEvent = new FlowContinueEvent(vehicleMaterList.get(0).getProc_inst_id(), null, null);
|
||||
BussEventMulticaster.Publish(continueEvent);
|
||||
|
||||
@@ -86,7 +86,7 @@ public class SyncReceiptProcessHandler implements ClassProcess {
|
||||
res = JSONObject.parseObject(result);
|
||||
}
|
||||
JSONObject responseStatus = res.getJSONObject("Result").getJSONObject("ResponseStatus");
|
||||
boolean isSuccess = responseStatus.getBooleanValue("IsSuccess");
|
||||
boolean isSuccess = responseStatus.getBooleanValue ("IsSuccess");
|
||||
JSONArray errors = responseStatus.getJSONArray("Errors");
|
||||
String errorMessages = "";
|
||||
if (ObjectUtils.isNotEmpty(errors)) {
|
||||
@@ -237,5 +237,33 @@ public class SyncReceiptProcessHandler implements ClassProcess {
|
||||
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","生产用料清单","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","ka7c19edf9d4b4b39b8cc4a06802163b0"));
|
||||
result.add(MapOf.of("text","其他出库单","value","STK_MisDelivery"));
|
||||
|
||||
@@ -408,6 +408,9 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
child.setPcsn("");
|
||||
} else {
|
||||
for (StructAssignQty assignQty : maps) {
|
||||
if (StringUtils.isBlank(assignQty.getPcsn())) {
|
||||
throw new BadRequestException(assignQty.getMaterial_id() + "该物料批次号为空!请检查!");
|
||||
}
|
||||
if (assignQty.getPcsn().equals(child.getPcsn())) {
|
||||
child.setSto_qty(assignQty.getSto_qty());
|
||||
child.setPcsn(assignQty.getPcsn());
|
||||
|
||||
@@ -33,7 +33,6 @@ import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
@@ -84,6 +83,7 @@ public class SyncErpBillsScheduleService {
|
||||
"STK_TransferDirect", "FStockOrgId",
|
||||
"SAL_RETURNSTOCK", "FStockOrgId",
|
||||
"PUR_MRB", "FStockOrgId",
|
||||
"SUB_PickMtrl", "FStockOrgId",
|
||||
"STK_MisDelivery", "FStockOrgId");
|
||||
//仓库信息
|
||||
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::getForm_data, JSON.toJSONString(f.getForm_data()))
|
||||
.set(PmFormData::getPlan_qty, f.getPlan_qty())
|
||||
.set(PmFormData::getActual_qty, f.getActual_qty())
|
||||
.set(PmFormData::getTaxPrice, f.getActual_qty())
|
||||
.set(PmFormData::getBar_code, f.getBar_code())
|
||||
.set(PmFormData::getUpdate_name, DateUtil.now())
|
||||
@@ -382,6 +383,13 @@ public class SyncErpBillsScheduleService {
|
||||
JSONArray mappingJsonArray = JSONArray.parseArray(mappingJson);
|
||||
List<PmFormData> formDataList = formDataService.syncAnalyse(mappingJsonArray, formType, dtlSplit, JSON.toJSONString(r));
|
||||
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);
|
||||
JSONObject object = mainFormData.getForm_data();
|
||||
String m_code = object.getString("m_code");
|
||||
@@ -396,7 +404,7 @@ public class SyncErpBillsScheduleService {
|
||||
materialBase.setMaterial_name(m_name);
|
||||
materialBase.setMaterial_spec(m_spec);
|
||||
materialBase.setQty_unit_id(m_unit);
|
||||
materialBase.setAssist_unit_id(formData.getVehicle_code());
|
||||
materialBase.setAssist_unit_id(assistUint);
|
||||
materialBase.setPrint_no(formData.getPcsn());
|
||||
iMdMeMaterialbaseService.save(materialBase);
|
||||
}
|
||||
|
||||
@@ -64,6 +64,8 @@ public class TaskScheduleService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void taskPublish(){
|
||||
boolean islock = lock.tryLock();
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user