package cn.stylefeng.guns.modular.om.productionOrdeInfo.service.impl; import cn.stylefeng.guns.base.pojo.page.LayuiPageFactory; import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo; import cn.stylefeng.guns.modular.bs.bomInfo.entity.BomInfo; import cn.stylefeng.guns.modular.bs.bomInfo.service.BomInfoService; import cn.stylefeng.guns.modular.om.productionOrdeInfo.entity.ProductionOrdeInfo; import cn.stylefeng.guns.modular.om.productionOrdeInfo.mapper.ProductionOrdeInfoMapper; import cn.stylefeng.guns.modular.om.productionOrdeInfo.model.params.ProductionOrdeInfoParam; import cn.stylefeng.guns.modular.om.productionOrdeInfo.model.result.ProductionOrdeInfoResult; import cn.stylefeng.guns.modular.om.productionOrdeInfo.service.ProductionOrdeInfoService; import cn.stylefeng.guns.modular.om.productionOrderBatchInfo.entity.ProductionOrderBatchInfo; import cn.stylefeng.guns.modular.om.productionOrderBatchInfo.model.params.ProductionOrderBatchInfoParam; import cn.stylefeng.guns.modular.om.productionOrderBatchInfo.service.ProductionOrderBatchInfoService; import cn.stylefeng.roses.core.util.ToolUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 生产工单 服务实现类 *

* * @author cl * @since 2022-10-25 */ @Service public class ProductionOrdeInfoServiceImpl extends ServiceImpl implements ProductionOrdeInfoService { /* private static SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); private static String date = format.format(new Date()); private static String orderDate = "M"+date;*/ @Autowired private ProductionOrdeInfoService productionOrdeInfoService; @Autowired private ProductionOrderBatchInfoService orderBatchInfoService; @Autowired private BomInfoService bomInfoService; @Override public void add(ProductionOrdeInfoParam param){ SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); String date = format.format(new Date()); String orderDate = "M"+date; List workOrderNo = productionOrdeInfoService.list(new QueryWrapper().like("work_order_no", date)); if(workOrderNo.size() == 0){ param.setWorkOrderNo(orderDate+"0001"); }else { param.setWorkOrderNo(orderDate+String.format("%04d", workOrderNo.size()+1)); } ProductionOrdeInfo one = productionOrdeInfoService.getOne(new QueryWrapper() .select("MAX(serial_number) as serial_number") ); if(one!=null){ param.setSerialNumber(one.getSerialNumber()+1); }else { param.setSerialNumber(new Long("1")); } ProductionOrdeInfo entity = getEntity(param); this.save(entity); } @Override public void delete(ProductionOrdeInfoParam param){ this.removeById(getKey(param)); } @Override public void update(ProductionOrdeInfoParam param){ //点击开始按钮 更新实际开始时间 // if(param.getFlag()!=null){ // param.setActualStartTime(new Date()); // } ProductionOrdeInfo oldEntity = getOldEntity(param); ProductionOrdeInfo newEntity = getEntity(param); ToolUtil.copyProperties(newEntity, oldEntity); this.updateById(newEntity); } @Override public ProductionOrdeInfoResult findBySpec(ProductionOrdeInfoParam param){ return baseMapper.customResult(param); } @Override public List findListBySpec(ProductionOrdeInfoParam param){ return this.baseMapper.customList(param); } @Override public LayuiPageInfo findPageBySpec(ProductionOrdeInfoParam param){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Page pageContext = getPageContext(); IPage page = this.baseMapper.customPageList(pageContext, param); List results = page.getRecords(); for (ProductionOrdeInfoResult result : results) { try{ result.setPlanEndTimeString(format.format(result.getPlanEndTime())); result.setPlanStartTimeString(format.format(result.getPlanStartTime())); }catch (Exception e){ } } return LayuiPageFactory.createPageInfo(page); } @Override public List lineFinishQty() { return this.baseMapper.lineFinishQty(); } @Override public void saveOrderBatchInfo(ProductionOrdeInfoParam productionOrdeInfoParam) { List productCode = bomInfoService.list(new QueryWrapper().eq("product_code", productionOrdeInfoParam.getMaterialCode())); List workOrderNo = orderBatchInfoService.list(new QueryWrapper().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo())); if(workOrderNo.size()==0){ for (BomInfo bomInfo : productCode) { ProductionOrderBatchInfo param = new ProductionOrderBatchInfo(); param.setWorkOrderNo(productionOrdeInfoParam.getWorkOrderNo()); param.setProductionLine(productionOrdeInfoParam.getProductionLine()); param.setLocationCode(bomInfo.getLocationCode()); param.setLoadingCode(bomInfo.getLoadingCode()); param.setMaterialCode(bomInfo.getMaterialCode()); param.setState("否"); param.setCreateTime(new Date()); orderBatchInfoService.save(param); } } } @Override public HashMap getOrderWeek() { return baseMapper.getOrderWeek(); } @Override public Integer getPlanQtyByDate(String str) { return baseMapper.getPlanQtyByDate(str); } @Override public Integer getActualQtyByDate(String str) { return baseMapper.getActualQtyByDate(str); } @Override public List getListMonth() { return baseMapper.getListMonth(); } @Override public List getColumnarDate() { return baseMapper.getColumnarDate(); } @Override public List bottomLeftChart() { return baseMapper.bottomLeftChart(); } @Override public List centerRight2() { return baseMapper.centerRight2(); } @Override public ProductionOrdeInfoResult getLastOrder() { return baseMapper.getLastOrder(); } private Serializable getKey(ProductionOrdeInfoParam param){ return param.getId(); } private Page getPageContext() { return LayuiPageFactory.defaultPage(); } private ProductionOrdeInfo getOldEntity(ProductionOrdeInfoParam param) { return this.getById(getKey(param)); } private ProductionOrdeInfo getEntity(ProductionOrdeInfoParam param) { ProductionOrdeInfo entity = new ProductionOrdeInfo(); ToolUtil.copyProperties(param, entity); return entity; } }