//package com.ruoyi.basic.service.impl;
|
//
|
//import cn.hutool.core.collection.CollUtil;
|
//import cn.hutool.core.collection.CollectionUtil;
|
//import cn.hutool.core.date.DateTime;
|
//import cn.hutool.core.date.DateUtil;
|
//import cn.hutool.core.util.StrUtil;
|
//import com.alibaba.excel.EasyExcel;
|
//import com.alibaba.excel.ExcelWriter;
|
//import com.alibaba.excel.write.metadata.WriteSheet;
|
//import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
//import com.baomidou.mybatisplus.core.metadata.IPage;
|
//import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
//import com.ruoyi.basic.service.RawMaterialOrderService;
|
//import lombok.AllArgsConstructor;
|
//import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
//import org.springframework.stereotype.Service;
|
//import org.springframework.transaction.annotation.Transactional;
|
//
|
//import javax.servlet.http.HttpServletResponse;
|
//import java.io.IOException;
|
//import java.io.UnsupportedEncodingException;
|
//import java.math.BigDecimal;
|
//import java.net.URLEncoder;
|
//import java.text.SimpleDateFormat;
|
//import java.time.LocalDateTime;
|
//import java.time.format.DateTimeFormatter;
|
//import java.util.*;
|
//import java.util.concurrent.atomic.AtomicInteger;
|
//
|
///**
|
// * @Author zhuo
|
// * @Date 2024/7/31
|
// */
|
//@Service
|
//@AllArgsConstructor
|
//public class RawMaterialOrderServiceImpl implements RawMaterialOrderService {
|
//
|
// private StandardTreeMapper standardTreeMapper;
|
// private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
|
// private GetLook getLook;
|
// private UserMapper userMapper;
|
// private InsOrderService insOrderService;
|
// private InsOrderMapper insOrderMapper;
|
// private InsSampleMapper insSampleMapper;
|
// private final NumberGenerator<InsOrder> numberGenerator;
|
// private InsReportService insReportService;
|
// private WechatProperty wechatProperty;
|
// private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
// private InsProductMapper insProductMapper;
|
// private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
|
//
|
//
|
// @Override
|
// public RawMaterialStandardTreeDto selectStandardTreeListByPartNo(String partNo) {
|
// if (StringUtils.isBlank(partNo)) {
|
// throw new ErrorException("零件号丢失");
|
// }
|
// List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeListByPartNo(partNo);
|
// if (CollectionUtil.isEmpty(factoryDtos)) {
|
// throw new ErrorException("零件号为" + partNo + "的原材料没有对应的标准库配置");
|
// }
|
// RawMaterialStandardTreeDto rawMaterialStandardTreeDto = new RawMaterialStandardTreeDto();
|
// for (FactoryDto factoryDto : factoryDtos) {
|
// for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) {
|
// for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) {
|
// if (sampleTypeDto.getChildren().size() == 0) {
|
// sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue()));
|
// }
|
// // 判断绑定的是否是当前零件号
|
// if (sampleTypeDto.getPartNo() != null && sampleTypeDto.getPartNo().equals(partNo)) {
|
// // 添加对象
|
// rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-"
|
// + laboratoryDto.getValue() + "-"
|
// + sampleTypeDto.getValue());
|
// rawMaterialStandardTreeDto.setCode(sampleTypeDto.getCode());
|
// rawMaterialStandardTreeDto.setLabel(sampleTypeDto.getLabel());
|
// rawMaterialStandardTreeDto.setValue(sampleTypeDto.getValue());
|
// rawMaterialStandardTreeDto.setChildren1(sampleTypeDto.getChildren());
|
// } else {
|
// for (SampleDto sampleDto : sampleTypeDto.getChildren()) {
|
// if (sampleDto.getPartNo() != null && sampleDto.getPartNo().equals(partNo)) {
|
// // 添加对象
|
// rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-"
|
// + laboratoryDto.getValue() + "-"
|
// + sampleTypeDto.getValue() + "-"
|
// + sampleDto.getValue());
|
// rawMaterialStandardTreeDto.setCode(sampleDto.getCode());
|
// rawMaterialStandardTreeDto.setLabel(sampleDto.getLabel());
|
// rawMaterialStandardTreeDto.setValue(sampleDto.getValue());
|
// rawMaterialStandardTreeDto.setChildren2(sampleDto.getChildren());
|
// }
|
// }
|
// }
|
// }
|
// }
|
// }
|
// return rawMaterialStandardTreeDto;
|
// }
|
//
|
// @Override
|
// public Map<String, Object> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
|
// Map<String, Object> map = new HashMap<>();
|
// map.put("head", PrintChina.printChina(IfsInventoryQuantity.class));
|
// map.put("body", standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity)));
|
// return map;
|
// }
|
//
|
// @Override
|
// public Map<String, Object> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto) {
|
// Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne");
|
// if (map1.get("look") == 1) {
|
// //个人
|
// ifsInventoryQuantityDto.setCreateUser(map1.get("userId"));
|
// }
|
// Map<String, Object> map = new HashMap<>();
|
//// ifsInventoryQuantityDto.setOrderState(null);
|
// map.put("head", PrintChina.printChina(IfsInventoryQuantityDto.class));
|
// map.put("body", standardTreeMapper.getIfsByStateOne(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto)));
|
// return map;
|
// }
|
//
|
//
|
// /**
|
// * 报检
|
// * @param ids
|
// * @return
|
// */
|
// @Override
|
// public int inspectionReport(List<Integer> ids) {
|
// Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
|
// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
|
// .in(IfsInventoryQuantity::getId, ids)
|
// .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName())
|
// .set(IfsInventoryQuantity::getDeclareUserId, userId)
|
// .set(IfsInventoryQuantity::getIsInspect, 1)
|
// .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now())
|
// );
|
// threadPoolTaskExecutor.execute(() -> {
|
// List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery()
|
// .in(IfsInventoryQuantity::getId, ids));
|
// // 企业微信通知
|
// String message = "";
|
// message += "新增报检通知";
|
// for (IfsInventoryQuantity inventoryQuantity : quantityList) {
|
// message += "\n批次号: " + inventoryQuantity.getUpdateBatchNo();
|
// message += "\n零件描述: " + inventoryQuantity.getPartDesc();
|
// message += "\n抵达数量: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
|
//
|
// // 判断有没有到20吨. 或者能否免检
|
// int result = notificationRawOrder(inventoryQuantity.getId());
|
// switch (result) {
|
// case 1:
|
// message += "\n当前样品已检验过, 可以免检";
|
// break;
|
// case 2:
|
// message += "\n当前样品已超过20吨";
|
// break;
|
// }
|
// message += "\n";
|
// }
|
// WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
|
// });
|
// return 1;
|
// }
|
//
|
// /**
|
// * 撤销报检
|
// * @param id
|
// * @return
|
// */
|
// @Override
|
// public int revokeInspectionReport(Integer id) {
|
// return ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
|
// .eq(IfsInventoryQuantity::getId, id)
|
// .set(IfsInventoryQuantity::getIsInspect, 0)
|
// );
|
// }
|
//
|
// /**
|
// * 打印标签查询
|
// * @param ids
|
// * @return
|
// */
|
// @Override
|
// public List<IfsInventoryQuantityDto> printLabel(List<Integer> ids) {
|
// return ifsInventoryQuantityMapper.printLabel(ids);
|
// }
|
//
|
// /**
|
// * 报检
|
// * @param ifsInventoryQuantity
|
// * @return
|
// */
|
// @Override
|
// public int inspectionReportOne(IfsInventoryQuantity ifsInventoryQuantity) {
|
// Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
|
// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
|
// .eq(IfsInventoryQuantity::getId, ifsInventoryQuantity.getId())
|
// .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName())
|
// .set(IfsInventoryQuantity::getDeclareUserId, userId)
|
// .set(IfsInventoryQuantity::getIsInspect, 1)
|
// .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now())
|
// .set(IfsInventoryQuantity::getUpdateBatchNo, ifsInventoryQuantity.getUpdateBatchNo())
|
// );
|
//
|
// threadPoolTaskExecutor.execute(() -> {
|
// IfsInventoryQuantity inventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryQuantity.getId());
|
// // 企业微信通知
|
// String message = "";
|
// message += "新增报检通知";
|
// message += "\n批次号: " + inventoryQuantity.getUpdateBatchNo();
|
// message += "\n零件描述: " + inventoryQuantity.getPartDesc();
|
// message += "\n抵达数量: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
|
// WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
|
// });
|
// return 1;
|
// }
|
//
|
// /**
|
// * 获取铜产业链检测数据
|
// * @param id
|
// * @return
|
// */
|
// @Override
|
// public String getIndustryChain(Integer id) {
|
// return ifsInventoryQuantityMapper.selectById(id).getIndustryChain();
|
// }
|
//
|
// /**
|
// * 原材料撤销接口
|
// * @param ifsInventoryId
|
// * @return
|
// */
|
// @Override
|
// public boolean repealRawOrder(Integer ifsInventoryId) {
|
// // 查询判断是否是铜单丝
|
// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
|
// if (ifsInventoryQuantity.getIsCopper() != null && ifsInventoryQuantity.getIsCopper().equals(1)) {
|
// // 铜单丝直接删除就行
|
// ifsInventoryQuantityMapper.deleteById(ifsInventoryId);
|
// } else {
|
// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
|
// .set(IfsInventoryQuantity::getState, 0)
|
// .set(IfsInventoryQuantity::getIsQuarter, 1)
|
// .eq(IfsInventoryQuantity::getId, ifsInventoryId));
|
// }
|
//
|
// insOrderService.update(Wrappers.<InsOrder>lambdaUpdate()
|
// .eq(InsOrder::getIfsInventoryId, ifsInventoryId)
|
// .set(InsOrder::getState, -1)
|
// .set(InsOrder::getEntrustCode, ""));// 撤销
|
// return true;
|
// }
|
//
|
// /**
|
// * 原材料免检下单
|
// * @param list
|
// * @param insOrder
|
// * @return
|
// */
|
// @Override
|
// @Transactional(rollbackFor = Exception.class)
|
// public int addExemptionOrder(List<SampleProductDto> list, InsOrder insOrder) {
|
// if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) {
|
// throw new ErrorException("只有进厂检验才能免检");
|
// }
|
// insOrder.setSendTime(LocalDateTime.now());
|
// // 修改订单表直接为已检验
|
// insOrder.setState(4);
|
// insOrder.setTypeSource(1);
|
//
|
// String code = "Y";
|
// // 生成编号
|
// String no = numberGenerator.generateNumberWithPrefix(3,
|
// "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()),
|
// InsOrder::getEntrustCode);
|
//
|
// insOrderMapper.insert(insOrder); // 主表
|
//
|
// AtomicInteger count = new AtomicInteger();
|
// list.forEach(a -> {
|
// count.getAndIncrement();
|
// a.setId(null);
|
// a.setInsOrderId(insOrder.getId());
|
// if (StrUtil.isEmpty(a.getSampleCode())) {
|
// // 如果只有一个样品就不需要拼接数字
|
// if (list.size() != 1) {
|
// a.setSampleCode(no + "-" + count.get());
|
// } else {
|
// a.setSampleCode(no);
|
// }
|
// }
|
// insSampleMapper.insert(a);
|
//
|
// if (!CollectionUtil.isEmpty(a.getInsProduct())) {
|
// throw new ErrorException("免检不需要填写检验项");
|
// }
|
// });
|
//
|
// // 原材料下单: 委托人就是报检人, 生产单位就是供应商单位
|
// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
|
// Integer declareUserId = ifsInventoryQuantity.getDeclareUserId();
|
// User user = userMapper.selectById(declareUserId);
|
// // 供应商名称
|
// insOrder.setProduction(ifsInventoryQuantity.getSupplierName());
|
// // 委托人名称
|
// insOrder.setPrepareUser(user.getName());
|
// insOrder.setPhone(user.getPhone());
|
//
|
// // 修改原材料数据直接为已检验
|
// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>().set(IfsInventoryQuantity::getState, 2)
|
// .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
|
//
|
// insOrder.setExamineTime(LocalDateTime.now());
|
//
|
// insOrder.setEntrustCode(no);
|
// insOrder.setIsExemption(1);
|
//
|
// insOrderMapper.updateById(insOrder);
|
//
|
// // 添加工时
|
// addAuxiliary(insOrder, ifsInventoryQuantity);
|
//
|
// // todo: ifs直接移库
|
// insReportService.isRawMaterial(insOrder);
|
//
|
// return insOrder.getId();
|
// }
|
//
|
//
|
// /**
|
// * 查询待下单
|
// * @param page
|
// * @param ifsInventoryQuantity
|
// * @return
|
// */
|
// @Override
|
// public Map<String, Object> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity) {
|
// Map<String, Object> map = new HashMap<>();
|
// map.put("head", PrintChina.printChina(IfsInventoryQuantityCheckDto.class));
|
// map.put("body", standardTreeMapper.selectIfsInventoryQuantity(page, QueryWrappers.queryWrappers(ifsInventoryQuantity)));
|
// return map;
|
// }
|
//
|
// /**
|
// * 查询已检验
|
// * @param page
|
// * @param ifsInventoryQuantityDto
|
// * @return
|
// */
|
// @Override
|
// public Map<String, Object> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) {
|
// Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne");
|
// if (map1.get("look") == 1) {
|
// //个人
|
// ifsInventoryQuantityDto.setCreateUser(map1.get("userId"));
|
// }
|
// String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
|
// String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
|
// ifsInventoryQuantityDto.setBeginDeclareDate(null);
|
// ifsInventoryQuantityDto.setEndDeclareDate(null);
|
//
|
// Map<String, Object> map = new HashMap<>();
|
// map.put("head", PrintChina.printChina(IfsInventoryQuantitySupplierDto.class));
|
// map.put("body", standardTreeMapper.getIfsByOver(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate));
|
// return map;
|
// }
|
//
|
// /**
|
// * 删除原材料报检信息
|
// * @param id
|
// * @return
|
// */
|
// @Override
|
// public int delIfsInventory(Integer id) {
|
// return ifsInventoryQuantityMapper.deleteById(id);
|
// }
|
//
|
// /**
|
// * 原材料放行免检
|
// * @param ifsInventoryId
|
// * @return
|
// */
|
// @Override
|
// @Transactional(rollbackFor = Exception.class)
|
// public boolean rawOrderRelease(Integer ifsInventoryId, String partDetail) {
|
// // 修改原材料数据直接为已检验
|
// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
|
// .set(IfsInventoryQuantity::getState, 2)
|
// .set(IfsInventoryQuantity::getIsQuarter, 0)
|
// .eq(IfsInventoryQuantity::getId, ifsInventoryId));
|
//
|
// // 查询原材料信息
|
// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
|
// // 委托人就是报检人, 生产单位就是供应商单位
|
// Integer declareUserId = ifsInventoryQuantity.getDeclareUserId();
|
// User user = userMapper.selectById(declareUserId);
|
//
|
// InsOrder insOrder = new InsOrder();
|
// insOrder.setState(4);
|
// insOrder.setTypeSource(1);
|
// String code = "Y";
|
// // 生成编号
|
// String no = numberGenerator.generateNumberWithPrefix(3,
|
// "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()),
|
// InsOrder::getEntrustCode);
|
// insOrder.setExamineTime(LocalDateTime.now());
|
// insOrder.setEntrustCode(no);
|
// insOrder.setIsExemption(1);
|
// // 供应商名称
|
// insOrder.setProduction(ifsInventoryQuantity.getSupplierName());
|
// // 委托人名称
|
// insOrder.setPrepareUser(user.getName());
|
// insOrder.setPhone(user.getPhone());
|
// insOrder.setIfsInventoryId(ifsInventoryId);
|
// insOrder.setPartDetail(partDetail);
|
// insOrder.setSendTime(LocalDateTime.now());
|
// insOrder.setSample(ifsInventoryQuantity.getPartDesc());
|
// // 进厂检验
|
// insOrder.setOrderType(InsOrderTypeConstants.ENTER_THE_FACTORY);
|
//
|
// insOrderMapper.insert(insOrder);
|
//
|
// // 添加工时
|
// addAuxiliary(insOrder, ifsInventoryQuantity);
|
//
|
// // todo: ifs直接移库
|
// insReportService.isRawMaterial(insOrder);
|
// return true;
|
// }
|
//
|
// /**
|
// * 0, 无提示, 1提示 当前批次的样品已检验过, 可以免检, 2 提示 当前批次的样品已超20吨, 需要多级多次检验
|
// *
|
// * 原材料下单通知免检或者多次检验
|
// * @param ifsInventoryId
|
// * @return
|
// */
|
// @Override
|
// public int notificationRawOrder(Integer ifsInventoryId) {
|
// IfsInventoryQuantity ifsInventory = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
|
// // 查询当前批次, 供应商, 零件号的原材料是否超过了20吨, 超过了20吨需要进行多次检验提醒
|
// List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery()
|
// .eq(IfsInventoryQuantity::getPartNo, ifsInventory.getPartNo())
|
// .eq(IfsInventoryQuantity::getUpdateBatchNo, ifsInventory.getUpdateBatchNo())
|
// .eq(IfsInventoryQuantity::getSupplierId, ifsInventory.getSupplierId())
|
// .eq(IfsInventoryQuantity::getSupplierName, ifsInventory.getSupplierName()));
|
//
|
// // 判断是否大于20吨
|
// BigDecimal bigDecimal = new BigDecimal("20000");
|
// BigDecimal count = BigDecimal.ZERO;
|
// for (IfsInventoryQuantity inventoryQuantity : quantityList) {
|
// // 判断单位是kg或者t
|
// if (inventoryQuantity.getBuyUnitMeas().equalsIgnoreCase("t")) {
|
// count = count.add(inventoryQuantity.getQtyArrived().multiply(new BigDecimal("1000")));
|
// } else if (inventoryQuantity.getBuyUnitMeas().equalsIgnoreCase("kg")) {
|
// count = count.add(inventoryQuantity.getQtyArrived());
|
// }
|
// }
|
//
|
// if (count.compareTo(bigDecimal) >= 0) {
|
// return 2;
|
// } else {
|
// // 判断之前是否出过报告, 出过报告可以免检
|
// int reportCount = ifsInventoryQuantityMapper.selectReportCountById(ifsInventoryId);
|
// if (reportCount > 0) {
|
// return 1;
|
// }
|
// }
|
// return 0;
|
// }
|
//
|
// /**
|
// * 报检可以新增报检信息
|
// * @param ifsInventoryQuantity
|
// */
|
// @Override
|
// public void addIfsInventoryQuantity(IfsInventoryQuantity ifsInventoryQuantity) {
|
// ifsInventoryQuantity.setIsSource(0);
|
// ifsInventoryQuantity.setState(0);
|
// ifsInventoryQuantity.setIsFinish(0);
|
// ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
|
// }
|
//
|
// @Override
|
// public void shiftingParking(List<Integer> ids) {
|
// for (Integer id : ids) {
|
// InsOrder order = insOrderService.getById(id);
|
// // todo: ifs直接移库
|
// insReportService.isRawMaterial(order);
|
// }
|
// }
|
//
|
// /**
|
// * 铜单丝下单免检
|
// * @param list
|
// * @param insOrder
|
// */
|
// @Override
|
// @Transactional(rollbackFor = Exception.class)
|
// public int addRawCopperOrderExemptionOrder(List<SampleProductDto> list, CopperInsOrderDto insOrder) {
|
// if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) {
|
// throw new ErrorException("只有进厂检验才能免检");
|
// }
|
// insOrder.setSendTime(LocalDateTime.now());
|
// // 修改订单表直接为已检验
|
// insOrder.setState(4);
|
// insOrder.setTypeSource(1);
|
//
|
// String code = "Y";
|
// // 生成编号
|
// String no = numberGenerator.generateNumberWithPrefix(3,
|
// "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()),
|
// InsOrder::getEntrustCode);
|
//
|
// insOrderMapper.insert(insOrder); // 主表
|
//
|
// AtomicInteger count = new AtomicInteger();
|
// list.forEach(a -> {
|
// count.getAndIncrement();
|
// a.setId(null);
|
// a.setInsOrderId(insOrder.getId());
|
// if (StrUtil.isEmpty(a.getSampleCode())) {
|
// // 如果只有一个样品就不需要拼接数字
|
// if (list.size() != 1) {
|
// a.setSampleCode(no + "-" + count.get());
|
// } else {
|
// a.setSampleCode(no);
|
// }
|
// }
|
// insSampleMapper.insert(a);
|
//
|
// if (!CollectionUtil.isEmpty(a.getInsProduct())) {
|
// throw new ErrorException("免检不需要填写检验项");
|
// }
|
// });
|
// // 添加原材料信息
|
// IfsInventoryQuantity ifsInventoryQuantity = new IfsInventoryQuantity();
|
// // 基本信息
|
// ifsInventoryQuantity.setIsSource(0);
|
// ifsInventoryQuantity.setState(2);
|
// ifsInventoryQuantity.setIsInspect(1);
|
// ifsInventoryQuantity.setIsFinish(1);
|
// ifsInventoryQuantity.setIsCopper(1);
|
// ifsInventoryQuantity.setInspectStatus(1);
|
// ifsInventoryQuantity.setIsQuarter(0);
|
//
|
// ifsInventoryQuantity.setQtyArrived(insOrder.getQtyArrived());
|
// ifsInventoryQuantity.setBuyUnitMeas(insOrder.getBuyUnitMeas());
|
// ifsInventoryQuantity.setSupplierName(insOrder.getSupplierName());
|
// ifsInventoryQuantity.setUpdateBatchNo(insOrder.getUpdateBatchNo());
|
// ifsInventoryQuantity.setDeclareDate(insOrder.getDeclareDate());
|
//
|
// ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
|
//
|
// insOrder.setIfsInventoryId(ifsInventoryQuantity.getId());
|
// insOrder.setExamineTime(LocalDateTime.now());
|
//
|
// insOrder.setEntrustCode(no);
|
// insOrder.setIsExemption(1);
|
//
|
// insOrderMapper.updateById(insOrder);
|
//
|
// // 添加工时
|
// addAuxiliary(insOrder, ifsInventoryQuantity);
|
//
|
// return insOrder.getId();
|
// }
|
//
|
// @Override
|
// @Transactional(rollbackFor = Exception.class)
|
// public boolean concessionRelease(Integer ifsInventoryId) {
|
// // 查询原材料信息
|
// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
|
// if (!ifsInventoryQuantity.getInspectStatus().equals(2)) {
|
// throw new ErrorException("不合格的原材料才能让步放行");
|
// }
|
//
|
// // todo:需要判断oa流程是否是让步放行
|
// String toLocation = insReportService.moveRawMaterial(ifsInventoryQuantity);
|
//
|
// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
|
// .set(IfsInventoryQuantity::getInspectStatus, 4)
|
// .set(IfsInventoryQuantity::getToLocation, toLocation)
|
// .eq(IfsInventoryQuantity::getId, ifsInventoryId));
|
//
|
// return true;
|
// }
|
//
|
// /**
|
// * 原材料进厂撤销下单
|
// * @param enterOrderId
|
// * @return
|
// */
|
// @Override
|
// @Transactional(rollbackFor = Exception.class)
|
// public boolean repealEnterRawOrder(Integer enterOrderId) {
|
// // 查询订单
|
// InsOrder order = insOrderMapper.selectById(enterOrderId);
|
//
|
// // 查询判断是否是铜单丝
|
// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
|
// if (ifsInventoryQuantity.getIsCopper() != null && ifsInventoryQuantity.getIsCopper().equals(1)) {
|
// // 铜单丝直接删除就行
|
// ifsInventoryQuantityMapper.deleteById(order.getIfsInventoryId());
|
// } else {
|
// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
|
// .set(IfsInventoryQuantity::getState, 0)
|
// .set(IfsInventoryQuantity::getIsQuarter, 1)
|
// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
|
// }
|
// insOrderService.update(Wrappers.<InsOrder>lambdaUpdate()
|
// .eq(InsOrder::getId, enterOrderId)
|
// .set(InsOrder::getState, -1)
|
// .set(InsOrder::getEntrustCode, ""));// 撤销
|
//
|
// // 清除之前的工时
|
// auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
|
// .eq(AuxiliaryOutputWorkingHours::getOrderId, enterOrderId));
|
//
|
// // 清除之前报告
|
// insReportService.remove(Wrappers.<InsReport>lambdaQuery()
|
// .eq(InsReport::getInsOrderId, enterOrderId));
|
//
|
// return true;
|
// }
|
//
|
// /**
|
// * 原材料季度撤销下单
|
// * @param quarterOrderId
|
// * @return
|
// */
|
// @Override
|
// @Transactional(rollbackFor = Exception.class)
|
// public boolean repealQuarterRawOrder(Integer quarterOrderId) {
|
// // 查询订单
|
// InsOrder order = insOrderMapper.selectById(quarterOrderId);
|
//
|
// Long count = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
|
// .eq(InsOrder::getIfsInventoryId, order.getIfsInventoryId())
|
// .ne(InsOrder::getState, -1)
|
// .eq(InsOrder::getOrderType, InsOrderTypeConstants.ENTER_THE_FACTORY)
|
// .ne(InsOrder::getId, order.getId()));
|
// // 判断之前是否有进厂检验, 没有需要修改原材料信息
|
// if (count == 0) {
|
// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
|
// .set(IfsInventoryQuantity::getState, 0)
|
// .set(IfsInventoryQuantity::getIsQuarter, 1)
|
// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
|
// } else {
|
// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
|
// .set(IfsInventoryQuantity::getIsQuarter, 1)
|
// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
|
// }
|
//
|
// insOrderService.update(Wrappers.<InsOrder>lambdaUpdate()
|
// .eq(InsOrder::getId, quarterOrderId)
|
// .set(InsOrder::getState, -1)
|
// .set(InsOrder::getEntrustCode, ""));// 撤销
|
// auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
|
// .eq(AuxiliaryOutputWorkingHours::getOrderId, quarterOrderId));
|
// // 清除之前报告
|
// insReportService.remove(Wrappers.<InsReport>lambdaQuery()
|
// .eq(InsReport::getInsOrderId, quarterOrderId));
|
// return true;
|
// }
|
//
|
// /**
|
// * 原材料报检全部信息导出
|
// * @param ifsInventoryQuantityDto
|
// * @param response
|
// */
|
// @Override
|
// public void rawAllExport(IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto, HttpServletResponse response) throws UnsupportedEncodingException {
|
// //查询导出的费用统计数据
|
// String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
|
// String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
|
// ifsInventoryQuantityDto.setBeginDeclareDate(null);
|
// ifsInventoryQuantityDto.setEndDeclareDate(null);
|
// List<IfsInventoryQuantitySupplierDto> ifsByOverList = standardTreeMapper.getIfsByOverList(QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
|
//
|
// for (IfsInventoryQuantitySupplierDto dto : ifsByOverList) {
|
// dto.setSendTimeString(dto.getSendTime() == null ? "" : dto.getSendTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
// dto.setReceiverDateString(dto.getReceiverDate() == null ? "" : dto.getReceiverDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
// dto.setDeclareDateString(dto.getDeclareDate() == null ? "" : dto.getDeclareDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
// switch (dto.getInspectStatus()) {
|
// case 1:
|
// dto.setInspectStatusString("合格");
|
// break;
|
// case 2:
|
// dto.setInspectStatusString("不合格");
|
// // 查询不合格项
|
// List<String> unqualifiedList = insProductMapper.selectUnqualifiedList(dto.getEnterOrderId() == null ? dto.getQuarterOrderId() : dto.getEnterOrderId());
|
// dto.setUnqualifiedItem(CollUtil.join(unqualifiedList, ","));
|
// break;
|
// case 3:
|
// dto.setInspectStatusString("未下单");
|
// break;
|
// case 4:
|
// dto.setInspectStatusString("让步放行");
|
// break;
|
// case 0:
|
// dto.setInspectStatusString("检验中");
|
// break;
|
//
|
// }
|
// }
|
//
|
//
|
// response.setContentType("application/vnd.ms-excel");
|
// response.setCharacterEncoding("UTF-8");
|
// // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
|
// String fileName = URLEncoder.encode("原材料检测信息导出", "UTF-8");
|
// response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
|
// try {
|
// //新建ExcelWriter
|
// ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
|
// //获取sheet0对象
|
// WriteSheet mainSheet = EasyExcel.writerSheet(0, "原材料检测信息导出").head(IfsInventoryQuantitySupplierDto.class).build();
|
//
|
// //向sheet0写入数据 传入空list这样只导出表头
|
// excelWriter.write(ifsByOverList, mainSheet);
|
// //关闭流
|
// excelWriter.finish();
|
// } catch (IOException e) {
|
// throw new RuntimeException("导出失败");
|
// }
|
// }
|
//
|
// /**
|
// * 原材料查询可以季度检验的内容
|
// * @param page
|
// * @param ifsInventoryQuantityDto
|
// * @return
|
// */
|
// @Override
|
// public Map<String, Object> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) {
|
// Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne");
|
// if (map1.get("look") == 1) {
|
// //个人
|
// ifsInventoryQuantityDto.setCreateUser(map1.get("userId"));
|
// }
|
// String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
|
// String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
|
// ifsInventoryQuantityDto.setBeginDeclareDate(null);
|
// ifsInventoryQuantityDto.setEndDeclareDate(null);
|
//
|
// Map<String, Object> map = new HashMap<>();
|
// map.put("head", PrintChina.printChina(IfsInventoryQuantitySupplierDto.class));
|
// map.put("body", standardTreeMapper.getIfsByQuarter(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate));
|
// return map;
|
// }
|
//
|
// /**
|
// * 提前入库
|
// * @param ifsInventoryId
|
// * @return
|
// */
|
// @Override
|
// public boolean advancedGodown(Integer ifsInventoryId) {
|
// // 查询原材料信息
|
// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
|
// if (!ifsInventoryQuantity.getInspectStatus().equals(0)
|
// && !ifsInventoryQuantity.getInspectStatus().equals(3)) {
|
// throw new ErrorException("未检测完成数据才能提前入库");
|
// }
|
//
|
// // todo:需要判断oa流程是否是让步放行
|
// String toLocation = insReportService.moveRawMaterial(ifsInventoryQuantity);
|
//
|
// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
|
// .set(IfsInventoryQuantity::getInspectStatus, 1)
|
// .set(IfsInventoryQuantity::getIsFinish, 1)
|
// .set(IfsInventoryQuantity::getToLocation, toLocation)
|
// .eq(IfsInventoryQuantity::getId, ifsInventoryId));
|
//
|
// return true;
|
// }
|
//
|
//
|
// /**
|
// * 添加工时
|
// * @param insOrder
|
// * @param ifsInventoryQuantity
|
// */
|
// private void addAuxiliary(InsOrder insOrder, IfsInventoryQuantity ifsInventoryQuantity) {
|
// AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours();
|
// auxiliaryOutputWorkingHours.setInspectionItemClass(ifsInventoryQuantity.getUpdateBatchNo() + "免检");//检测项分类
|
// auxiliaryOutputWorkingHours.setSample(insOrder.getEntrustCode());//样品编号
|
// auxiliaryOutputWorkingHours.setOrderId(insOrder.getId());//订单id
|
// auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//非加班委托单号
|
//
|
// // 免检默认2
|
// auxiliaryOutputWorkingHours.setWorkTime(new BigDecimal("2"));//非加班工时
|
// auxiliaryOutputWorkingHours.setAmount(1);//非加班数量
|
// auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : BigDecimal.ZERO));//产量工时
|
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
// DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
// auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//日期
|
// LocalDateTime localDateTime = LocalDateTime.now();
|
// DateTime parse = DateUtil.parse(localDateTime.format(formatter));
|
// auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//星期
|
// auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//周次
|
// auxiliaryOutputWorkingHours.setCheck(getLook.selectPowerByMethodAndUserId(null).get("userId"));//检测人
|
// auxiliaryOutputWorkingHours.setPrice(new BigDecimal("1"));//单价
|
//
|
// auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours);
|
// }
|
//
|
// public static String getWeek(String dayStr) {
|
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
// try {
|
// Date date = sdf.parse(dayStr);
|
// Calendar calendar = Calendar.getInstance();
|
// calendar.setTime(date);
|
// int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
|
// int day = calendar.get(Calendar.DAY_OF_MONTH);
|
// return getWeekDay(dayOfWeek);
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
// return null;
|
// }
|
//
|
// public static String getWeekDay(int dayOfWeek) {
|
// switch (dayOfWeek) {
|
// case Calendar.MONDAY:
|
// return "周一";
|
// case Calendar.TUESDAY:
|
// return "周二";
|
// case Calendar.WEDNESDAY:
|
// return "周三";
|
// case Calendar.THURSDAY:
|
// return "周四";
|
// case Calendar.FRIDAY:
|
// return "周五";
|
// case Calendar.SATURDAY:
|
// return "周六";
|
// case Calendar.SUNDAY:
|
// return "周日";
|
// default:
|
// return "未知";
|
// }
|
// }
|
//}
|