|
@@ -24,7 +24,6 @@ import cn.ezhizao.project.system.service.ISysDeptService;
|
|
|
import cn.ezhizao.project.system.service.ISysUserService;
|
|
|
import cn.hutool.extra.template.TemplateException;
|
|
|
import freemarker.template.Template;
|
|
|
-import io.swagger.annotations.ApiModelProperty;
|
|
|
import lombok.Data;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -69,7 +68,7 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
@Resource
|
|
|
private IBizDayworkCarrierService iBizDayworkCarrierService;
|
|
|
@Resource
|
|
|
- private IBizOutsourcedRecordsService iBizOutsourcedRecordsService;
|
|
|
+ private IBizOutsourcedRecordsService bizOutsourcedRecordsService;
|
|
|
|
|
|
@Resource
|
|
|
private ISysUserService userService;
|
|
@@ -132,8 +131,8 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
bizOutsourcedOrder = bizOutsourcedOrderService.getById(bizOutsourcedOrder);
|
|
|
BizOutsourcedOrderDetail bizOutsourcedOrderDetail = new BizOutsourcedOrderDetail();
|
|
|
bizOutsourcedOrderDetail.setMasterId(bizOutsourcedOrder.getId());
|
|
|
- SysUser user=userService.selectUserById(bizOutsourcedOrder.getCreatorId());
|
|
|
- if(user!=null){
|
|
|
+ SysUser user = userService.selectUserById(bizOutsourcedOrder.getCreatorId());
|
|
|
+ if (user != null) {
|
|
|
bizOutsourcedOrder.setNickName(user.getNickName());
|
|
|
}
|
|
|
|
|
@@ -211,7 +210,7 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
// 然后,给每个对象的 sum 属性赋值
|
|
|
for (BizOutsourcedOrderDetail item : listItem) {
|
|
|
item.setSum(sum);
|
|
|
- item.setOriginalCarrierCount(item.getNewCarrierCount()!=null && item.getNewCarrierCount()!=0 ? item.getNewCarrierCount() : item.getOriginalCarrierCount());
|
|
|
+ item.setOriginalCarrierCount(item.getNewCarrierCount() != null && item.getNewCarrierCount() != 0 ? item.getNewCarrierCount() : item.getOriginalCarrierCount());
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -441,13 +440,14 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
.collect(Collectors.joining(","));
|
|
|
//赋值给新箱号
|
|
|
detail.setNewCarrier(formattedString);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
detail.setNewCarrier("");
|
|
|
}
|
|
|
});
|
|
|
outsourcedOrderDetails = bizOutsourcedOrderDetailService.batchSave(outsourcedOrderDetails, bizOutsourcedOrder);
|
|
|
return success(bizOutsourcedOrderDetailProcessService.batchSave(outsourcedOrderDetails));
|
|
|
}
|
|
|
+
|
|
|
@Log(title = "外协单主带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子", businessType = BusinessType.INSERT)
|
|
|
@PostMapping("/submitDetails")
|
|
|
@Transactional
|
|
@@ -468,16 +468,16 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
String codeValue;
|
|
|
String codeType = "outsourcedOrderCode";
|
|
|
//查询redis中外协单号的值
|
|
|
- String previous = redisCache.hasKey(codeType) ? redisCache.getCacheObject(codeType) :"";
|
|
|
+ String previous = redisCache.hasKey(codeType) ? redisCache.getCacheObject(codeType) : "";
|
|
|
//若不存在,则直接存入
|
|
|
if (previous.isEmpty()) {
|
|
|
previous = ("WFD" + formattedDate + "00001");
|
|
|
} else {
|
|
|
- codeValue=previous;
|
|
|
+ codeValue = previous;
|
|
|
int lastFourDigits = Integer.parseInt(codeValue.substring(5, 10));
|
|
|
lastFourDigits += 1; // 加1
|
|
|
codeValue = codeValue.substring(0, 5) + String.format("%05d", lastFourDigits);
|
|
|
- previous=codeValue;
|
|
|
+ previous = codeValue;
|
|
|
}
|
|
|
//存到redis中
|
|
|
redisCache.setCacheObject(codeType, previous);
|
|
@@ -523,25 +523,24 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
//如果没点换箱,用的原箱,也要像新箱那种方式存,为了拿到newCarriers
|
|
|
List<String> detailOriginalCarriers = Arrays.stream(detail.getOriginalCarrier().split(",")).collect(Collectors.toList());
|
|
|
List<BizCarrier> orignialCarries = new ArrayList<>();
|
|
|
- for(int i = 0;i<detailOriginalCarriers.size();i++) {
|
|
|
- for(int j = 0;j<orignalCarrierList.size();j++)
|
|
|
- {
|
|
|
- if(detailOriginalCarriers.get(i).equals(orignalCarrierList.get(j).getCarrierCode())) {
|
|
|
- BizCarrier bizCarrier = new BizCarrier();
|
|
|
- bizCarrier.setCode(orignalCarrierList.get(j).getCarrierCode());
|
|
|
- bizCarrier.setId(orignalCarrierList.get(j).getCarrierId());
|
|
|
- orignialCarries.add(bizCarrier);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- String formattedString =orignialCarries.stream()
|
|
|
+ for (int i = 0; i < detailOriginalCarriers.size(); i++) {
|
|
|
+ for (int j = 0; j < orignalCarrierList.size(); j++) {
|
|
|
+ if (detailOriginalCarriers.get(i).equals(orignalCarrierList.get(j).getCarrierCode())) {
|
|
|
+ BizCarrier bizCarrier = new BizCarrier();
|
|
|
+ bizCarrier.setCode(orignalCarrierList.get(j).getCarrierCode());
|
|
|
+ bizCarrier.setId(orignalCarrierList.get(j).getCarrierId());
|
|
|
+ orignialCarries.add(bizCarrier);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String formattedString = orignialCarries.stream()
|
|
|
.map(item -> item.getId() + "|" + item.getCode())
|
|
|
.collect(Collectors.joining(","));
|
|
|
- detail.setNewCarrier(formattedString);
|
|
|
- detail.setNewCarrierName(orignialCarries.stream()
|
|
|
- .map(BizCarrier::getCode)
|
|
|
- .collect(Collectors.joining(",")));
|
|
|
- // detail.setNewCarrier(detail.getOriginalCarrier());
|
|
|
+ detail.setNewCarrier(formattedString);
|
|
|
+ detail.setNewCarrierName(orignialCarries.stream()
|
|
|
+ .map(BizCarrier::getCode)
|
|
|
+ .collect(Collectors.joining(",")));
|
|
|
+ // detail.setNewCarrier(detail.getOriginalCarrier());
|
|
|
}
|
|
|
});
|
|
|
List<BizOutsourcedRecords> outsourcedRecordsList = new ArrayList<>();
|
|
@@ -553,60 +552,59 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
// 创建一个 SimpleDateFormat 对象,并设置所需的日期格式
|
|
|
//保存修改记录
|
|
|
outsourcedOrderDetails.forEach(detail -> {
|
|
|
- BizOutsourcedRecords saveRecords = new BizOutsourcedRecords();
|
|
|
- saveRecords.setUserName(SecurityUtils.getLoginUser().getUser().getUserName());
|
|
|
- saveRecords.setNickName(SecurityUtils.getLoginUser().getUser().getNickName());
|
|
|
- if(bizOutsourcedOrder.getId() == null) {
|
|
|
- saveRecords.setMethod("创建");
|
|
|
- }else {
|
|
|
- saveRecords.setMethod("修改");
|
|
|
- }
|
|
|
- saveRecords.setFormCode(bizOutsourcedOrder.getFormCode());
|
|
|
- saveRecords.setSupplierId(bizOutsourcedOrder.getSupplierId());
|
|
|
- saveRecords.setSupplierName(bizOutsourcedOrder.getSupplierName());
|
|
|
- saveRecords.setLotId(detail.getLotId());
|
|
|
- saveRecords.setLotCode(detail.getLotCode());
|
|
|
- saveRecords.setProductDescription(detail.getProductDescription());
|
|
|
- saveRecords.setProductNum(detail.getProductNum());
|
|
|
- if(detail.getNewCarriers().size()>0) {
|
|
|
- saveRecords.setNewCarrier(detail.getNewCarriers().stream()
|
|
|
- .map(BizCarrier::getCode)
|
|
|
- .collect(Collectors.joining(",")));
|
|
|
- }else{
|
|
|
- saveRecords.setNewCarrier(detail.getOriginalCarrier());
|
|
|
- }
|
|
|
- saveRecords.setProcessNames(detail.getProcessNames());
|
|
|
- saveRecords.setStartTime(formattedDate);
|
|
|
+ BizOutsourcedRecords saveRecords = new BizOutsourcedRecords();
|
|
|
+ saveRecords.setUserName(SecurityUtils.getLoginUser().getUser().getUserName());
|
|
|
+ saveRecords.setNickName(SecurityUtils.getLoginUser().getUser().getNickName());
|
|
|
+ if (bizOutsourcedOrder.getId() == null) {
|
|
|
+ saveRecords.setMethod("创建");
|
|
|
+ } else {
|
|
|
+ saveRecords.setMethod("修改");
|
|
|
+ }
|
|
|
+ saveRecords.setFormCode(bizOutsourcedOrder.getFormCode());
|
|
|
+ saveRecords.setSupplierId(bizOutsourcedOrder.getSupplierId());
|
|
|
+ saveRecords.setSupplierName(bizOutsourcedOrder.getSupplierName());
|
|
|
+ saveRecords.setLotId(detail.getLotId());
|
|
|
+ saveRecords.setLotCode(detail.getLotCode());
|
|
|
+ saveRecords.setProductDescription(detail.getProductDescription());
|
|
|
+ saveRecords.setProductNum(detail.getProductNum());
|
|
|
+ if (detail.getNewCarriers().size() > 0) {
|
|
|
+ saveRecords.setNewCarrier(detail.getNewCarriers().stream()
|
|
|
+ .map(BizCarrier::getCode)
|
|
|
+ .collect(Collectors.joining(",")));
|
|
|
+ } else {
|
|
|
+ saveRecords.setNewCarrier(detail.getOriginalCarrier());
|
|
|
+ }
|
|
|
+ saveRecords.setProcessNames(detail.getProcessNames());
|
|
|
+ saveRecords.setStartTime(formattedDate);
|
|
|
outsourcedRecordsList.add(saveRecords);
|
|
|
});
|
|
|
//修改主表信息
|
|
|
bizOutsourcedOrderService.saveOrUpdate(bizOutsourcedOrder);
|
|
|
- outsourcedRecordsList.forEach(item ->{
|
|
|
+ outsourcedRecordsList.forEach(item -> {
|
|
|
item.setMasterId(bizOutsourcedOrder.getId());
|
|
|
});
|
|
|
- iBizOutsourcedRecordsService.saveBatch(outsourcedRecordsList);
|
|
|
-
|
|
|
+ bizOutsourcedRecordsService.saveBatch(outsourcedRecordsList);
|
|
|
|
|
|
|
|
|
//判断是否使用新箱子
|
|
|
//根据 detail.getNewCarriers()判断是否绑定了新箱子,如果有数据表示绑定新箱子,找出对应的dayworkId,解绑对应的箱子
|
|
|
List<Long> dayworkIds = outsourcedOrderDetails.stream().filter(detail -> detail.getNewCarriers().size() > 0).map(BizOutsourcedOrderDetail::getDayworkId).collect(Collectors.toList());
|
|
|
- if(dayworkIds.size()>0){
|
|
|
+ if (dayworkIds.size() > 0) {
|
|
|
iBizDayworkCarrierService.removeByDayworkIds(dayworkIds);
|
|
|
}
|
|
|
|
|
|
iBizDayworkCarrierService.saveBatch(carrierList);
|
|
|
outsourcedOrderDetails = bizOutsourcedOrderDetailService.updateOrSave(outsourcedOrderDetails, bizOutsourcedOrder);
|
|
|
- List<BizOutsourcedOrderDetail> oldDetailList =bizOutsourcedOrderDetailService.query().eq("master_id",bizOutsourcedOrder.getId()).list();
|
|
|
+ List<BizOutsourcedOrderDetail> oldDetailList = bizOutsourcedOrderDetailService.query().eq("master_id", bizOutsourcedOrder.getId()).list();
|
|
|
//删除或修改收回明细(通过工序判断,如果工序变了,如果已经填写了收回单,则删除收回单该批次的明细,如果只是修改了箱号,则编辑回收单该批次的明细)
|
|
|
- bizReturnReceiptDetailService.removeOrEditDetails(outsourcedOrderDetails,oldDetailList);
|
|
|
+ bizReturnReceiptDetailService.removeOrEditDetails(outsourcedOrderDetails, oldDetailList);
|
|
|
//修改外协明细表
|
|
|
- saveOrUpdateBatch(bizOutsourcedOrderDetailService,outsourcedOrderDetails,oldDetailList);
|
|
|
+ saveOrUpdateBatch(bizOutsourcedOrderDetailService, outsourcedOrderDetails, oldDetailList);
|
|
|
List<String> formCodeList = outsourcedOrderDetails.stream().map(BizOutsourcedOrderDetail::getFormCode).collect(Collectors.toList());
|
|
|
List<BizOutsourcedOrderDetail> newDetaillist = bizOutsourcedOrderDetailService.query().in("form_code", formCodeList).list();
|
|
|
- for(int i = 0;i<newDetaillist.size();i++) {
|
|
|
- for(int j =0;j<outsourcedOrderDetails.size();j++) {
|
|
|
- if(newDetaillist.get(i).getLotId().equals(outsourcedOrderDetails.get(j).getLotId())) {
|
|
|
+ for (int i = 0; i < newDetaillist.size(); i++) {
|
|
|
+ for (int j = 0; j < outsourcedOrderDetails.size(); j++) {
|
|
|
+ if (newDetaillist.get(i).getLotId().equals(outsourcedOrderDetails.get(j).getLotId())) {
|
|
|
newDetaillist.get(i).setProcesses(outsourcedOrderDetails.get(j).getProcesses());
|
|
|
}
|
|
|
}
|
|
@@ -654,6 +652,7 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
}
|
|
|
return success();
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 修改外协单主
|
|
|
* 带箱方式,是整单的。如果换新箱子,明细中,都需要更换箱子
|
|
@@ -824,7 +823,7 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
flag = bizOutsourcedOrderDetailProcessService.query().in("master_id", ids).list().stream().anyMatch(item -> item.getStatus() == 1);
|
|
|
List<Long> outsourcedDetailIds = bizOutsourcedOrderDetailService.query().in("master_id", ids).list().stream().map(BizOutsourcedOrderDetail::getId).collect(Collectors.toList());
|
|
|
flag = bizReturnReceiptDetailService.query().in("outsource_detail_id", outsourcedDetailIds).list().stream().anyMatch(item -> item.getStatus() == 1);
|
|
|
- if(flag) {
|
|
|
+ if (flag) {
|
|
|
return error("发出单内存在已经报工或已经审核确认的批次,不能删除!");
|
|
|
}
|
|
|
//删除收回单明细及收回单主表信息
|
|
@@ -871,7 +870,7 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
// 获取该外协单的所有批次
|
|
|
// 获取对应子计划的所有批次
|
|
|
// List<BizLot> lots =
|
|
|
- List<BizLot> allLots = bizLotService.query().in("production_plan_detail_id",detail.getPlanDetails() == null || detail.getPlanDetails().isEmpty() ? Collections.singletonList(0L) : detail.getPlanDetails().stream().map(BizProductionPlanDetail::getId).collect(Collectors.toList())).list();
|
|
|
+ List<BizLot> allLots = bizLotService.query().in("production_plan_detail_id", detail.getPlanDetails() == null || detail.getPlanDetails().isEmpty() ? Collections.singletonList(0L) : detail.getPlanDetails().stream().map(BizProductionPlanDetail::getId).collect(Collectors.toList())).list();
|
|
|
// 已开始生产的所有批次
|
|
|
List<BizLot> workedLots = bizLotService.query().exists("(select 1 from biz_daywork t where t.deleted = 0 and t.lot_id = biz_lot.id)").list();
|
|
|
List<BizOutsourcedOrderDetail> details = bizOutsourcedOrderDetailService.query().eq("master_id", detail.getMasterId()).in("lot_id", allLots.isEmpty() ? Collections.singletonList(0L) : allLots.stream().map(BizLot::getId).collect(Collectors.toList())).list();
|
|
@@ -913,6 +912,27 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
|
|
|
|
|
|
private void saveAllForFirst(BizOutsourcedOrder bizOutsourcedOrder) {
|
|
|
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yy"); // 定义日期格式
|
|
|
+ String formattedDate = dateFormat.format(new Date());
|
|
|
+ String codeValue;
|
|
|
+ String codeType = "outsourcedOrderCode";
|
|
|
+ //查询redis中外协单号的值
|
|
|
+ String previous = redisCache.hasKey(codeType) ? redisCache.getCacheObject(codeType) : "";
|
|
|
+ //若不存在,则直接存入
|
|
|
+ if (previous.isEmpty()) {
|
|
|
+ previous = ("WFD" + formattedDate + "00001");
|
|
|
+ } else {
|
|
|
+ codeValue = previous;
|
|
|
+ int lastFourDigits = Integer.parseInt(codeValue.substring(5, 10));
|
|
|
+ lastFourDigits += 1; // 加1
|
|
|
+ codeValue = codeValue.substring(0, 5) + String.format("%05d", lastFourDigits);
|
|
|
+ previous = codeValue;
|
|
|
+ }
|
|
|
+ //存到redis中
|
|
|
+ redisCache.setCacheObject(codeType, previous);
|
|
|
+ bizOutsourcedOrder.setFormCode(previous);
|
|
|
+ bizOutsourcedOrder.setIsSubmit(1);
|
|
|
+
|
|
|
bizOutsourcedOrderService.save(bizOutsourcedOrder);
|
|
|
List<BizOutsourcedOrderDetail> details = bizOutsourcedOrder.getDetails();
|
|
|
SysDept condition = new SysDept();
|
|
@@ -921,8 +941,10 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
List<BizDaywork> dayworks = new ArrayList<>();
|
|
|
List<BizFurnaceNoInfo> furnaceNoInfos = new ArrayList<>();
|
|
|
List<BizOutsourcedOrderDetailProcess> detailProcesses = new ArrayList<>();
|
|
|
- List<BizLot> lots = bizLotService.query().in("id", details.isEmpty() ?Collections.singletonList(0L) : details.stream().map(BizOutsourcedOrderDetail::getLotId).collect(Collectors.toList())).list();
|
|
|
+ List<BizLot> lots = bizLotService.query().in("id", details.isEmpty() ? Collections.singletonList(0L) : details.stream().map(BizOutsourcedOrderDetail::getLotId).collect(Collectors.toList())).list();
|
|
|
List<BizDayworkItem> items = new ArrayList<>();
|
|
|
+// BizOutsourcedRecords record = new BizOutsourcedRecords();
|
|
|
+ List<BizOutsourcedRecords> records = new ArrayList<>();
|
|
|
details.forEach(l -> {
|
|
|
l.setMasterId(bizOutsourcedOrder.getId());
|
|
|
BizDaywork daywork = new BizDaywork();
|
|
@@ -938,8 +960,23 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
daywork.setIsLast(lot != null ? lot.getIsLast() : null);
|
|
|
daywork.setIsWaste(lot != null ? lot.getIsWaste() : null);
|
|
|
daywork.setIsAmend(lot != null ? lot.getIsAmend() : null);
|
|
|
- daywork.setIsWasteRecycling(lot != null ? lot.getIsWasteRecycling() :null);
|
|
|
+ daywork.setIsWasteRecycling(lot != null ? lot.getIsWasteRecycling() : null);
|
|
|
dayworks.add(daywork);
|
|
|
+ BizOutsourcedRecords record = new BizOutsourcedRecords();
|
|
|
+ record.setMasterId(bizOutsourcedOrder.getId());
|
|
|
+ record.setUserName(SecurityUtils.getLoginUser().getUser().getUserName());
|
|
|
+ record.setNickName(SecurityUtils.getLoginUser().getUser().getNickName());
|
|
|
+ record.setMethod("创建");
|
|
|
+ record.setFormCode(bizOutsourcedOrder.getFormCode());
|
|
|
+ record.setSupplierId(bizOutsourcedOrder.getSupplierId());
|
|
|
+ record.setSupplierName(bizOutsourcedOrder.getSupplierName());
|
|
|
+ record.setLotId(l.getLotId());
|
|
|
+ record.setLotCode(l.getLotCode());
|
|
|
+ record.setProductDescription(l.getProductDescription());
|
|
|
+ record.setProductNum(l.getProductNum());
|
|
|
+ record.setProcessNames(l.getProcessNames());
|
|
|
+ record.setStartTime(formattedDate);
|
|
|
+ records.add(record);
|
|
|
l.setDayworkId(daywork.getId());
|
|
|
BizFurnaceNoInfo furnaceNoInfo = l.getFurnaceNoInfo();
|
|
|
furnaceNoInfo.setDayworkId(daywork.getId());
|
|
@@ -983,11 +1020,13 @@ public class BizOutsourcedOrderController extends BaseController {
|
|
|
});
|
|
|
|
|
|
});
|
|
|
+//
|
|
|
bizDayworkService.saveBatch(dayworks);
|
|
|
furnaceNoInfoService.saveBatch(furnaceNoInfos);
|
|
|
bizOutsourcedOrderDetailService.saveBatch(details);
|
|
|
bizOutsourcedOrderDetailProcessService.saveBatch(detailProcesses);
|
|
|
bizDayworkItemService.saveBatch(items);
|
|
|
+ bizOutsourcedRecordsService.saveBatch(records);
|
|
|
}
|
|
|
|
|
|
}
|