Merge remote-tracking branch 'origin/master'

master
Yangwl 8 months ago
commit 2ae296d681

@ -25,6 +25,9 @@ public interface RemoteSapService {
@PostMapping("/sap/shopOrderSync") @PostMapping("/sap/shopOrderSync")
public R<List<SapProOrder>> shopOrderSync(@RequestBody SapShopOrderQuery sapProOrder); public R<List<SapProOrder>> shopOrderSync(@RequestBody SapShopOrderQuery sapProOrder);
@PostMapping("/sap/ZmesPurwqGet")
public R zmesPurwqGet(@RequestBody(required = false) Map<String, Object> mapList);
/**传递母订单号和母订单数量**/ /**传递母订单号和母订单数量**/
@PostMapping("/sap/shopUpdateSync") @PostMapping("/sap/shopUpdateSync")
public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder); public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder);

@ -1,4 +1,4 @@
package com.op.sap.domain.vo; package com.op.system.api.domain.sap;
import java.util.Date; import java.util.Date;

@ -23,6 +23,11 @@ public class RemoteSapFallbackFactory implements FallbackFactory<RemoteSapServic
return R.fail("SAP服务获取SAP订单失败:" + throwable.getMessage()); return R.fail("SAP服务获取SAP订单失败:" + throwable.getMessage());
} }
@Override
public R zmesPurwqGet(Map<String, Object> mapList) {
return R.fail("SAP服务获取白坯SAP订单失败:" + throwable.getMessage());
}
@Override @Override
public R<Boolean> sapRouterSync(SapRouterQuery sapRouterQuery) { public R<Boolean> sapRouterSync(SapRouterQuery sapRouterQuery) {
return R.fail("SAP服务同步工艺失败:" + throwable.getMessage()); return R.fail("SAP服务同步工艺失败:" + throwable.getMessage());

@ -62,6 +62,9 @@ public class MesLineController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, MesLine mesLine) { public void export(HttpServletResponse response, MesLine mesLine) {
List<MesLine> list = mesLineService.selectMesLineList(mesLine); List<MesLine> list = mesLineService.selectMesLineList(mesLine);
for(MesLine mline:list){
mline.setProductCode(mline.getProductCode().substring(7));
}
ExcelUtil<MesLine> util = new ExcelUtil<MesLine>(MesLine. class); ExcelUtil<MesLine> util = new ExcelUtil<MesLine>(MesLine. class);
util.exportExcel(response, list, "线体管理数据"); util.exportExcel(response, list, "线体管理数据");
} }

@ -1,5 +1,6 @@
package com.op.plan.controller; package com.op.plan.controller;
import com.op.common.core.domain.R;
import com.op.common.core.exception.ServiceException; import com.op.common.core.exception.ServiceException;
import com.op.common.core.utils.poi.ExcelUtil; import com.op.common.core.utils.poi.ExcelUtil;
import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.controller.BaseController;
@ -8,6 +9,7 @@ import com.op.common.core.web.page.TableDataInfo;
import com.op.common.log.annotation.Log; import com.op.common.log.annotation.Log;
import com.op.common.log.enums.BusinessType; import com.op.common.log.enums.BusinessType;
import com.op.common.security.annotation.RequiresPermissions; import com.op.common.security.annotation.RequiresPermissions;
import com.op.plan.domain.ProOrder;
import com.op.plan.domain.ProOrderWorkorder; import com.op.plan.domain.ProOrderWorkorder;
import com.op.plan.domain.dto.SplitOrderDTO; import com.op.plan.domain.dto.SplitOrderDTO;
import com.op.plan.service.IProOrderWorkorderService; import com.op.plan.service.IProOrderWorkorderService;

@ -164,4 +164,10 @@ public class ProWhiteOrderController {
orderList.add(example); orderList.add(example);
util.exportExcel(response, orderList, "订单基本信息"); util.exportExcel(response, orderList, "订单基本信息");
} }
@Log(title = "同步白坯SAP订单", businessType = BusinessType.INSERT)
@PostMapping("/syncSAPbp")
public void syncSAPbp(@RequestBody ProOrder proOrder) {
proWhiteOrderService.syncSAPbp(proOrder);
}
} }

@ -258,5 +258,7 @@ public interface ProOrderWorkorderMapper {
List<ProOrderWorkorder> getWorkList(String workorderCode); List<ProOrderWorkorder> getWorkList(String workorderCode);
List<String> getBatchList(String workorderId); List<String> getBatchList(String workorderId);
int bpAddBatch(@Param("list") List<ProOrder> orders);
} }

@ -3,6 +3,7 @@ package com.op.plan.service;
import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.domain.AjaxResult;
import com.op.plan.domain.ProLine; import com.op.plan.domain.ProLine;
import com.op.plan.domain.ProOrder;
import com.op.plan.domain.ProOrderWorkorder; import com.op.plan.domain.ProOrderWorkorder;
import com.op.plan.domain.ProOrderWorkorderBatch; import com.op.plan.domain.ProOrderWorkorderBatch;
import com.op.plan.domain.dto.SplitOrderDTO; import com.op.plan.domain.dto.SplitOrderDTO;

@ -71,4 +71,7 @@ public interface IProWhiteOrderService {
* @return * @return
*/ */
AjaxResult getSplitInfo(ProOrder proOrder); AjaxResult getSplitInfo(ProOrder proOrder);
public void syncSAPbp(ProOrder proOrder);
} }

@ -25,10 +25,8 @@ import com.op.system.api.RemoteSapService;
import com.op.system.api.domain.SysSapLog; import com.op.system.api.domain.SysSapLog;
import com.op.system.api.domain.dto.MesPrepareDTO; import com.op.system.api.domain.dto.MesPrepareDTO;
import com.op.system.api.domain.dto.MesPrepareDetailDTO; import com.op.system.api.domain.dto.MesPrepareDetailDTO;
import com.op.system.api.domain.sap.SapCloseOrderQuery; import com.op.system.api.domain.sap.*;
import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.model.SapProOrder;
import com.op.system.api.domain.sap.SapMaterialPreparation;
import com.op.system.api.domain.sap.SapShopOrderQuery;
import net.bytebuddy.matcher.FilterableList; import net.bytebuddy.matcher.FilterableList;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
@ -72,6 +70,8 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
private RemoteSapService remoteSapService; private RemoteSapService remoteSapService;
@Autowired @Autowired
private ProWetMaterialPlanMapper proWetMaterialPlanMapper; private ProWetMaterialPlanMapper proWetMaterialPlanMapper;
@Autowired
private ProWhiteOrderMapper proWhiteOrderMapper;
/** /**
* *

@ -1,8 +1,10 @@
package com.op.plan.service.impl; package com.op.plan.service.impl;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.context.SecurityContextHolder;
import com.op.common.core.domain.R;
import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.domain.AjaxResult;
@ -11,10 +13,17 @@ import com.op.plan.domain.vo.CascaderDTO;
import com.op.plan.domain.vo.SplitProWhiteOrderVo; import com.op.plan.domain.vo.SplitProWhiteOrderVo;
import com.op.plan.mapper.*; import com.op.plan.mapper.*;
import com.op.plan.service.IProWhiteOrderService; import com.op.plan.service.IProWhiteOrderService;
import com.op.system.api.RemoteSapService;
import com.op.system.api.domain.quality.HRInfo;
import com.op.system.api.domain.sap.SapWBDemand;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
@ -32,7 +41,7 @@ import static com.op.common.core.web.domain.AjaxResult.success;
*/ */
@Service @Service
public class ProWhiteOrderServiceImpl implements IProWhiteOrderService { public class ProWhiteOrderServiceImpl implements IProWhiteOrderService {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired @Autowired
private ProWhiteOrderMapper proWhiteOrderMapper; private ProWhiteOrderMapper proWhiteOrderMapper;
@Autowired @Autowired
@ -47,7 +56,8 @@ public class ProWhiteOrderServiceImpl implements IProWhiteOrderService {
private ProOrderWorkorderBatchMapper proOrderWorkorderBatchMapper; private ProOrderWorkorderBatchMapper proOrderWorkorderBatchMapper;
@Autowired @Autowired
private ProWetMaterialPlanDetailMapper proWetMaterialPlanDetailMapper; private ProWetMaterialPlanDetailMapper proWetMaterialPlanDetailMapper;
@Autowired
private RemoteSapService remoteSapService;
/** /**
* *
* *
@ -325,6 +335,70 @@ public class ProWhiteOrderServiceImpl implements IProWhiteOrderService {
} }
} }
/**
* sap
*/
@Override
@DS("#header.poolName")
public void syncSAPbp(ProOrder proOrder) {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
Map<String, Object> dataParams = new HashMap<>();
dataParams.put("werks", request.getHeader(key.substring(8)).replace("ds_",""));
//dataParams.put("werks","1000");
logger.info("白坯手动订单同步:【参数】" + JSONObject.toJSONString(dataParams));
//取>=20230923的sap数据
R rSapProOrder = remoteSapService.zmesPurwqGet(dataParams);//sap只能同步指定日期的数据
List<SapWBDemand> sapWBDemandList = JSONArray.parseArray(JSONObject.toJSONString(rSapProOrder.getData()), SapWBDemand.class);
if (CollectionUtils.isEmpty(sapWBDemandList)) {
System.out.println("无最新的白坯订单");
} else {
logger.info("白坯手动订单同步:【结果】" + JSONObject.toJSONString(sapWBDemandList));
syncSAPbpFunc(sapWBDemandList, "bpsap");
}
}
@Transactional(rollbackFor = Exception.class)
public String syncSAPbpFunc(List<SapWBDemand> newOrders,String syncUser){
List<ProOrder> orders = new ArrayList<>();
ProOrder proOrder = null;
String bpDD = "DD" + DateUtils.parseDateToStr(DateUtils.YYYYMMDD, DateUtils.getNowDate());
int m=1;
Date nowDate = DateUtils.getNowDate();
for (SapWBDemand sapProOrder:newOrders) {
if(StringUtils.isNotBlank(sapProOrder.getMatnr())&&StringUtils.isNotBlank(sapProOrder.getMaktx())){
//工单生产后整个订单就被锁定//订单存在就更新,不存在就插入
proOrder = new ProOrder();
proOrder.setPlanFactoryCode(sapProOrder.getWerks());
proOrder.setMaterialCode(sapProOrder.getMatnr());
proOrder.setMaterialName(sapProOrder.getMaktx());
double menge = sapProOrder.getMenge();
proOrder.setQuantity((long)menge);
proOrder.setUnit(sapProOrder.getMeins());
proOrder.setPlanProDate(sapProOrder.getBedat());
proOrder.setPlanComplete(sapProOrder.getBedat());
proOrder.setSyncUser(syncUser);
proOrder.setCreateBy(syncUser);
proOrder.setCreateTime(nowDate);
proOrder.setId(IdUtils.fastSimpleUUID());
proOrder.setStatus("o0");
proOrder.setOrderType("white");
proOrder.setProdType("white");
int liushuiNum = proWhiteOrderMapper.getTodayMaxNum(proOrder)+(m++);
String liushuiStr = String.format("%04d", liushuiNum);
proOrder.setOrderCode(bpDD + liushuiStr);
orders.add(proOrder);
}
}
int snum = proOrderWorkorderMapper.bpAddBatch(orders);
logger.info("成功条数:"+snum);
return "成功条数:"+snum;
}
public static void main(String args[]) { public static void main(String args[]) {
String formatted = String.format("%04d", 7); String formatted = String.format("%04d", 7);
System.out.println(formatted); System.out.println(formatted);

@ -916,6 +916,24 @@
) )
</foreach> </foreach>
</insert> </insert>
<insert id="bpAddBatch">
INSERT INTO pro_order (
id,plan_factory_code,order_type,order_code,
prod_code,prod_desc,
quantity,unit,
plan_pro_date, plan_complete,
create_by,create_time
)VALUES
<foreach collection="list" item="d" index="index" separator=",">
(
#{d.id},#{d.planFactoryCode},#{d.orderType},#{d.orderCode},
#{d.materialCode},#{d.materialName},
#{d.quantity},#{d.unit},
#{d.planProDate},#{d.planComplete},
#{d.createBy},#{d.createTime}
)
</foreach>
</insert>
<update id="updateProOrderWorkorder" parameterType="ProOrderWorkorder"> <update id="updateProOrderWorkorder" parameterType="ProOrderWorkorder">
update pro_order_workorder update pro_order_workorder

@ -509,4 +509,16 @@ public class QcCheckTaskIncomeController extends BaseController {
} }
return success(); return success();
} }
/**应用最新检验方案,重新生成检验任务**/
@PostMapping(value = "/changeTaskDetail")
public AjaxResult changeTaskDetail(@RequestBody QcCheckTaskIncome task) {
QcCheckTaskIncome taskInfo = qcCheckTaskIncomeService.getTaskInfoByRecordId(task.getRecordId());
if(taskInfo.getCheckStatus().equals("2")){
return error("任务已经检验无法重新生成检验任务!");
}
task.setMaterialCode(taskInfo.getMaterialCode());
task.setCheckType(taskInfo.getCheckType());
return toAjax(qcCheckTaskIncomeService.changeTaskDetail(task));
}
} }

@ -2,6 +2,7 @@ package com.op.quality.controller;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -9,8 +10,10 @@ import com.alibaba.fastjson2.JSONObject;
import com.op.common.core.domain.R; import com.op.common.core.domain.R;
import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.DateUtils;
import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.StringUtils;
import com.op.quality.domain.InventoryExportDTO;
import com.op.quality.domain.OACheckTaskDTO; import com.op.quality.domain.OACheckTaskDTO;
import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTaskIncome;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -71,8 +74,15 @@ public class QcCheckTaskInventoryController extends BaseController {
@Log(title = "库存检验任务", businessType = BusinessType.EXPORT) @Log(title = "库存检验任务", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, QcCheckTaskInventory qcCheckTaskInventory) { public void export(HttpServletResponse response, QcCheckTaskInventory qcCheckTaskInventory) {
List<QcCheckTaskInventory> list = qcCheckTaskInventoryService.selectQcCheckTaskInventoryList(qcCheckTaskInventory); List<QcCheckTaskInventory> list0 = qcCheckTaskInventoryService.selectQcCheckTaskInventoryList(qcCheckTaskInventory);
ExcelUtil<QcCheckTaskInventory> util = new ExcelUtil<QcCheckTaskInventory>(QcCheckTaskInventory.class);
List<InventoryExportDTO> list = new ArrayList<>();
for(QcCheckTaskInventory dto0:list0){
InventoryExportDTO dto = new InventoryExportDTO();
BeanUtils.copyProperties(dto0,dto);
list.add(dto);
}
ExcelUtil<InventoryExportDTO> util = new ExcelUtil<InventoryExportDTO>(InventoryExportDTO.class);
util.exportExcel(response, list, "库存检验任务数据"); util.exportExcel(response, list, "库存检验任务数据");
} }

@ -39,8 +39,8 @@ public class QcDefectTypeClassController extends BaseController {
/** /**
* - * -
*/ */
@RequiresPermissions("system:class:list") //@RequiresPermissions("system:class:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(QcDefectTypeClass qcDefectTypeClass) { public TableDataInfo list(QcDefectTypeClass qcDefectTypeClass) {
startPage(); startPage();
List<QcDefectTypeClass> list = qcDefectTypeClassService.selectQcDefectTypeClassList(qcDefectTypeClass); List<QcDefectTypeClass> list = qcDefectTypeClassService.selectQcDefectTypeClassList(qcDefectTypeClass);
@ -50,7 +50,7 @@ public class QcDefectTypeClassController extends BaseController {
/** /**
* - * -
*/ */
@RequiresPermissions("system:class:export") //@RequiresPermissions("system:class:export")
@Log(title = "故障类型-缺陷描述分类", businessType = BusinessType.EXPORT) @Log(title = "故障类型-缺陷描述分类", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, QcDefectTypeClass qcDefectTypeClass) { public void export(HttpServletResponse response, QcDefectTypeClass qcDefectTypeClass) {
@ -62,7 +62,7 @@ public class QcDefectTypeClassController extends BaseController {
/** /**
* - * -
*/ */
@RequiresPermissions("system:class:query") //@RequiresPermissions("system:class:query")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id) { public AjaxResult getInfo(@PathVariable("id") String id) {
return success(qcDefectTypeClassService.selectQcDefectTypeClassById(id)); return success(qcDefectTypeClassService.selectQcDefectTypeClassById(id));
@ -71,7 +71,7 @@ public class QcDefectTypeClassController extends BaseController {
/** /**
* - * -
*/ */
@RequiresPermissions("system:class:add") //@RequiresPermissions("system:class:add")
@Log(title = "故障类型-缺陷描述分类", businessType = BusinessType.INSERT) @Log(title = "故障类型-缺陷描述分类", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody QcDefectTypeClass qcDefectTypeClass) { public AjaxResult add(@RequestBody QcDefectTypeClass qcDefectTypeClass) {
@ -81,7 +81,7 @@ public class QcDefectTypeClassController extends BaseController {
/** /**
* - * -
*/ */
@RequiresPermissions("system:class:edit") //@RequiresPermissions("system:class:edit")
@Log(title = "故障类型-缺陷描述分类", businessType = BusinessType.UPDATE) @Log(title = "故障类型-缺陷描述分类", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody QcDefectTypeClass qcDefectTypeClass) { public AjaxResult edit(@RequestBody QcDefectTypeClass qcDefectTypeClass) {
@ -91,7 +91,7 @@ public class QcDefectTypeClassController extends BaseController {
/** /**
* - * -
*/ */
@RequiresPermissions("system:class:remove") //@RequiresPermissions("system:class:remove")
@Log(title = "故障类型-缺陷描述分类", businessType = BusinessType.DELETE) @Log(title = "故障类型-缺陷描述分类", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids) { public AjaxResult remove(@PathVariable String[] ids) {

@ -613,7 +613,7 @@ public class QcStaticTableController extends BaseController {
//表格结构数据 //表格结构数据
ArrayList<ExcelCol> excelCols = new ArrayList<>(); ArrayList<ExcelCol> excelCols = new ArrayList<>();
excelCols.add(new ExcelCol("时间", "timeCol", 15)); excelCols.add(new ExcelCol("时间", "timeCol", 15));
excelCols.add(new ExcelCol("抽数", "sampleQuality", 10)); excelCols.add(new ExcelCol("抽数", "sampleQuality", 10));
for (int n = 0; n < title2Cols.size(); n++) { for (int n = 0; n < title2Cols.size(); n++) {
excelCols.add(new ExcelCol(title2Cols.get(n), "col" + (n), 15)); excelCols.add(new ExcelCol(title2Cols.get(n), "col" + (n), 15));
@ -649,7 +649,7 @@ public class QcStaticTableController extends BaseController {
List<HashMap> list = qcStaticTableService.getTableHzDataSC(qcStaticTable); List<HashMap> list = qcStaticTableService.getTableHzDataSC(qcStaticTable);
List<String> title2Cols = titledto.getColumns1(); List<String> title2Cols = titledto.getColumns1();
//String titleRow1 = String.join(",", title2Cols); //String titleRow1 = String.join(",", title2Cols);
String titleRow1 = "巡检分析报表"; String titleRow1 = "来料统计分析";
//表格结构数据 //表格结构数据
ArrayList<ExcelCol> excelCols = new ArrayList<>(); ArrayList<ExcelCol> excelCols = new ArrayList<>();
excelCols.add(new ExcelCol("时间", "timeCol", 15)); excelCols.add(new ExcelCol("时间", "timeCol", 15));

@ -0,0 +1,271 @@
package com.op.quality.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* qc_check_task_inventory
*
* @author Open Platform
* @date 2024-01-12
*/
public class InventoryExportDTO extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* id
*/
private String recordId;
/**
*
*/
@Excel(name = "检验任务编号")
private String checkNo;
/**
*
*/
@Excel(name = "订单号")
private String orderNo;
/**
*
*/
@Excel(name = "物料号")
private String materialCode;
/**
*
*/
@Excel(name = "物料名称")
private String materialName;
/**
*
*/
@Excel(name = "收货数量")
private BigDecimal quality;
/**
*
*/
//@Excel(name = "单位")
private String unit;
/**
*
*/
@Excel(name = "仓库编码")
private String supplierCode;
/**
*
*/
@Excel(name = "仓库名称")
private String supplierName;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date incomeTime;
/**
* 012
*/
@Excel(name = "检测状态", readConverterExp = "0=待检测,1=检测中,2=检测完成")
private String checkStatus;
/**
*
*/
@Excel(name = "检测人工号")
private String checkManCode;
/**
*
*/
@Excel(name = "检测人姓名")
private String checkManName;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "检验时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date checkTime;
/**
* Y
*/
@Excel(name = "检验结果", readConverterExp = "Y=合格,N=不合格")
private String checkResult;
@Excel(name = "检验节点", readConverterExp = "checkTypeCC=库存检验")
private String checkType;
/**
*
*/
@Excel(name = "不合格数量")
private BigDecimal noOkQuality;
/**
*
*/
@Excel(name = "抽样数量")
private BigDecimal sampleQuality;
public String getRecordId() {
return recordId;
}
public void setRecordId(String recordId) {
this.recordId = recordId;
}
public String getCheckNo() {
return checkNo;
}
public void setCheckNo(String checkNo) {
this.checkNo = checkNo;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public BigDecimal getSampleQuality() {
return sampleQuality;
}
public void setSampleQuality(BigDecimal sampleQuality) {
this.sampleQuality = sampleQuality;
}
public String getMaterialCode() {
return materialCode;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getMaterialName() {
return materialName;
}
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
public BigDecimal getQuality() {
return quality;
}
public void setQuality(BigDecimal quality) {
this.quality = quality;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getSupplierCode() {
return supplierCode;
}
public void setSupplierCode(String supplierCode) {
this.supplierCode = supplierCode;
}
public String getSupplierName() {
return supplierName;
}
public void setSupplierName(String supplierName) {
this.supplierName = supplierName;
}
public Date getIncomeTime() {
return incomeTime;
}
public void setIncomeTime(Date incomeTime) {
this.incomeTime = incomeTime;
}
public String getCheckStatus() {
return checkStatus;
}
public void setCheckStatus(String checkStatus) {
this.checkStatus = checkStatus;
}
public String getCheckManCode() {
return checkManCode;
}
public void setCheckManCode(String checkManCode) {
this.checkManCode = checkManCode;
}
public String getCheckManName() {
return checkManName;
}
public void setCheckManName(String checkManName) {
this.checkManName = checkManName;
}
public Date getCheckTime() {
return checkTime;
}
public void setCheckTime(Date checkTime) {
this.checkTime = checkTime;
}
public String getCheckResult() {
return checkResult;
}
public void setCheckResult(String checkResult) {
this.checkResult = checkResult;
}
public String getCheckType() {
return checkType;
}
public void setCheckType(String checkType) {
this.checkType = checkType;
}
public BigDecimal getNoOkQuality() {
return noOkQuality;
}
public void setNoOkQuality(BigDecimal noOkQuality) {
this.noOkQuality = noOkQuality;
}
}

@ -39,9 +39,10 @@ public class QcCheckTaskInventory extends BaseEntity {
/** /**
* *
*/ */
@Excel(name = "单号") @Excel(name = "单号")
private String orderNo; private String orderNo;
@Excel(name = "订单号")
private String workorderCodeSap;
/** /**
* *
*/ */
@ -525,6 +526,14 @@ public class QcCheckTaskInventory extends BaseEntity {
this.serialNumber = serialNumber; this.serialNumber = serialNumber;
} }
public String getWorkorderCodeSap() {
return workorderCodeSap;
}
public void setWorkorderCodeSap(String workorderCodeSap) {
this.workorderCodeSap = workorderCodeSap;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -159,4 +159,6 @@ public interface QcCheckTaskIncomeMapper {
void deleteTaskDetail(String deleteIds); void deleteTaskDetail(String deleteIds);
void deleteTaskUser(String deleteIds); void deleteTaskUser(String deleteIds);
QcCheckTaskIncome getTaskInfoByRecordId(String recordId);
} }

@ -84,4 +84,6 @@ public interface QcCheckTypeProjectMapper {
QcMaterialGroupDetail selectExist(QcMaterialGroupDetail materialGroupDetail); QcMaterialGroupDetail selectExist(QcMaterialGroupDetail materialGroupDetail);
int clearTaskDetail(String recordId);
int clearTaskDefect(String recordId);
} }

@ -113,4 +113,8 @@ public interface IQcCheckTaskIncomeService {
int commitCheckResultsCg(QcCheckTaskIncome qcCheckTaskIncome); int commitCheckResultsCg(QcCheckTaskIncome qcCheckTaskIncome);
int togetherTask(QcCheckTaskIncome income); int togetherTask(QcCheckTaskIncome income);
QcCheckTaskIncome getTaskInfoByRecordId(String recordId);
int changeTaskDetail(QcCheckTaskIncome task);
} }

@ -26,6 +26,7 @@ import com.op.system.api.domain.SysNoticeGroup;
import com.op.system.api.domain.SysUser; import com.op.system.api.domain.SysUser;
import com.op.system.api.domain.dto.WechartDTO; import com.op.system.api.domain.dto.WechartDTO;
import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO;
import com.op.system.api.domain.quality.QcMaterialGroupDetailDTO;
import com.op.system.api.domain.quality.QcUserMaterialDTO; import com.op.system.api.domain.quality.QcUserMaterialDTO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -870,6 +871,85 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
return m; return m;
} }
@Override
@DS("#header.poolName")
public QcCheckTaskIncome getTaskInfoByRecordId(String recordId) {
return qcCheckTaskIncomeMapper.getTaskInfoByRecordId(recordId);
}
@Override
@DS("#header.poolName")
public int changeTaskDetail(QcCheckTaskIncome task) {
//清理检验明细项目
int dnum1 = qcCheckTypeProjectMapper.clearTaskDetail(task.getRecordId());
System.out.println("删除1"+dnum1);
int dnum2 = qcCheckTypeProjectMapper.clearTaskDefect(task.getRecordId());
System.out.println("删除2"+dnum2);
/**取检测项**/
QcCheckTypeProject qctp= new QcCheckTypeProject();
qctp.setTypeId(task.getCheckType());//检验节点
qctp.setMaterialCode(task.getMaterialCode());//特性
/**qc_check_type_project**///个性
List<QcCheckTaskDetail> items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp);
/**qc_material_group_detail**/
QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(task.getMaterialCode());
//共性
if(group == null){//默认
if(task.getCheckType().equals("checkTypeLL")){
group = new QcMaterialGroupDetail();
QcProjectType initGroup = qcCheckTypeProjectMapper.getProductGroup(task.getMaterialCode());
if(initGroup != null){
group.setGroupId(initGroup.getGroupId());
}else{
return 0;//没有找到检测项目
}
}else if(task.getCheckType().equals("checkTypeSCXJ")
||task.getCheckType().equals("checkTypeSC")
||task.getCheckType().equals("checkTypeCP")){
group = new QcMaterialGroupDetail();
group.setGroupId("3dc0655fea3449c59c76a01cc5b91565");//成品蚊香物料组
}else if(task.getCheckType().equals("checkTypeCC")){
group = new QcMaterialGroupDetail();
QcProjectType initGroup = qcCheckTypeProjectMapper.getProductGroup(task.getMaterialCode());
if(initGroup != null){//包材共性
group.setGroupId(initGroup.getGroupId());
}else{//成品共性
group.setGroupId("3dc0655fea3449c59c76a01cc5b91565");
}
}
}
List<QcCheckTaskDetail> itemsGG = new ArrayList<>();
if(StringUtils.isNotBlank(group.getGroupId())){
qctp.setGroupId(group.getGroupId());
itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp);
}
items.addAll(itemsGG);
/**qc_check_task_detail**/
if(CollectionUtils.isEmpty(items)){
logger.info("检验任务创建参数缺失:"+task.getMaterialCode());
return 0;//没有找到检测项目
}
/**qc_check_task_detail**/
Date nowDate = DateUtils.getNowDate();
String createBy = SecurityUtils.getUsername();
//获取当前所选工厂
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName";
String factoryCode = request.getHeader(key.substring(8)).replace("ds_","");
for(QcCheckTaskDetail item:items){
item.setRecordId(IdUtils.fastSimpleUUID());
item.setBelongTo(task.getRecordId());
item.setCreateTime(nowDate);
item.setCreateBy(createBy);
item.setFactoryCode(factoryCode);
item.setStatus("Y");
}
return qcCheckTaskDetailMapper.addBatch(items);
}
@Override @Override
//@Transactional(rollbackFor = Exception.class) //@Transactional(rollbackFor = Exception.class)
public int commitCheckResults(QcCheckTaskIncome qcCheckTaskIncome) { public int commitCheckResults(QcCheckTaskIncome qcCheckTaskIncome) {

@ -1125,9 +1125,12 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
BigDecimal noOkRate = new BigDecimal(sampl.getNoOkQuality()).multiply(new BigDecimal("100.00")) BigDecimal noOkRate = new BigDecimal(sampl.getNoOkQuality()).multiply(new BigDecimal("100.00"))
.divide(new BigDecimal(sampl.getSampleQuality()),2, BigDecimal.ROUND_HALF_UP); .divide(new BigDecimal(sampl.getSampleQuality()),2, BigDecimal.ROUND_HALF_UP);
colMap.put("noOkRate",noOkRate); colMap.put("noOkRate",noOkRate);
colMap.put("noOkQua",sampl.getNoOkQuality());
}else{ }else{
colMap.put("sampleQuality","0"); colMap.put("sampleQuality","0");
colMap.put("noOkRate","0"); colMap.put("noOkRate","0");
colMap.put("noOkQua","0");
} }
//不良数(不折算) //不良数(不折算)
Map<String,QcStaticTable> noOks = qcStaticTableMapper.getNoOkPCNum(qcStaticTable); Map<String,QcStaticTable> noOks = qcStaticTableMapper.getNoOkPCNum(qcStaticTable);

@ -861,6 +861,14 @@
where qct.record_id in(${ids}) where qct.record_id in(${ids})
order by qct.check_no desc order by qct.check_no desc
</select> </select>
<select id="getTaskInfoByRecordId" resultType="com.op.quality.domain.QcCheckTaskIncome">
select
qct.check_status checkStatus,
qct.material_code materialCode,
qct.check_type checkType
from qc_check_task qct
where qct.record_id in('${ids}')
</select>
<!--批量更新原始表--> <!--批量更新原始表-->
<update id="updateIncomeBatchList"> <update id="updateIncomeBatchList">

@ -41,6 +41,8 @@
<result property="cNoOkquality" column="cNoOkquality"/> <result property="cNoOkquality" column="cNoOkquality"/>
<result property="typeCode" column="type_code"/> <result property="typeCode" column="type_code"/>
<result property="orderType" column="order_type"/> <result property="orderType" column="order_type"/>
<result property="workorderCodeSap" column="workorderCodeSap"/>
</resultMap> </resultMap>
<sql id="selectQcCheckTaskInventoryVo"> <sql id="selectQcCheckTaskInventoryVo">
@ -54,7 +56,8 @@
<select id="selectQcCheckTaskInventoryList" parameterType="QcCheckTaskInventory" <select id="selectQcCheckTaskInventoryList" parameterType="QcCheckTaskInventory"
resultMap="QcCheckTaskInventoryResult"> resultMap="QcCheckTaskInventoryResult">
select qct.record_id, qct.check_no, qct.income_batch_no, select qct.record_id, qct.check_no, qct.income_batch_no,
qct.order_no, qct.material_code, qct.material_name, qct.quality, qct.unit, case when pow.workorder_code_sap is null then qct.order_no else SUBSTRING(pow.workorder_code_sap,4,10) end order_no,
qct.material_code, qct.material_name, qct.quality, qct.unit,
qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status, qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status,
qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status, qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status,
qct.create_by,qct.create_time, qct.update_by, qct.update_time, qct.create_by,qct.create_time, qct.update_by, qct.update_time,
@ -62,16 +65,21 @@
q.type_code q.type_code
from qc_check_task qct from qc_check_task qct
left join qc_check_type q on q.id = qct.check_type left join qc_check_type q on q.id = qct.check_type
left join pro_order_workorder pow on pow.workorder_code = qct.order_no and pow.del_flag = '0'
<where> <where>
<if test="checkNo != null and checkNo != ''">and qct.check_no = #{checkNo}</if> <if test="checkNo != null and checkNo != ''">and qct.check_no = #{checkNo}</if>
<if test="incomeBatchNo != null and incomeBatchNo != ''">and qct.income_batch_no = #{incomeBatchNo}</if> <if test="incomeBatchNo != null and incomeBatchNo != ''">and qct.income_batch_no = #{incomeBatchNo}</if>
<if test="orderNo != null and orderNo != ''">and qct.order_no = #{orderNo}</if> <if test="orderNo != null and orderNo != ''">and (
qct.order_no like concat('%', #{orderNo},'%') or
pow.workorder_code_sap like concat('%',#{orderNo},'%')
)</if>
<if test="materialCode != null and materialCode != ''"> <if test="materialCode != null and materialCode != ''">
and qct.material_code like concat('%',#{materialCode}, '%') and qct.material_code like concat('%',#{materialCode}, '%')
</if> </if>
<if test="materialName != null and materialName != ''"> <if test="materialName != null and materialName != ''">
and qct.material_name like concat('%',#{materialName}, '%') and qct.material_name like concat('%',#{materialName}, '%')
</if> </if>
<if test="supplierCode != null and supplierCode != ''">and qct.supplier_code like concat('%',#{supplierCode}, '%')</if> <if test="supplierCode != null and supplierCode != ''">and qct.supplier_code like concat('%',#{supplierCode}, '%')</if>
<if test="supplierName != null and supplierName != ''">and qct.supplier_name like concat('%',#{supplierName}, '%')</if> <if test="supplierName != null and supplierName != ''">and qct.supplier_name like concat('%',#{supplierName}, '%')</if>
<if test="incomeTime != null ">and qct.income_time = #{incomeTime}</if> <if test="incomeTime != null ">and qct.income_time = #{incomeTime}</if>
@ -91,6 +99,7 @@
<if test="checkTimeEnd != null ">and #{checkTimeEnd} > CONVERT(varchar(30),qct.create_time, 120)</if> <if test="checkTimeEnd != null ">and #{checkTimeEnd} > CONVERT(varchar(30),qct.create_time, 120)</if>
<if test="checkType != null ">and qct.check_type = #{checkType}</if> <if test="checkType != null ">and qct.check_type = #{checkType}</if>
<if test="typeCode != null ">and q.type_code = #{typeCode}</if> <if test="typeCode != null ">and q.type_code = #{typeCode}</if>
and qct.del_flag = '0'
</where> </where>
order by qct.create_time desc order by qct.create_time desc
</select> </select>
@ -301,7 +310,9 @@
t0.supplierName, t0.supplierName,
t0.check_Type t0.check_Type
from (--> from (-->
select t.order_no orderNo, select
SUBSTRING(pow.workorder_code_sap,4,10) workorderCodeSap,
t.order_no orderNo,
t.material_code materialCode, t.material_code materialCode,
t.material_name materialName, t.material_name materialName,
t.quality quality, t.quality quality,
@ -317,14 +328,14 @@
left join ( left join (
select order_no,material_code,max(create_time) create_time select order_no,material_code,max(create_time) create_time
from qc_check_task where check_type='checkTypeCC' and del_flag = '0' GROUP BY order_no,material_code from qc_check_task where check_type='checkTypeCC' and del_flag = '0' GROUP BY order_no,material_code
) qct on qct.order_no = t.order_no ) qct on qct.order_no = t.order_no and t.material_code = qct.material_code
and t.material_code = qct.material_code left join pro_order_workorder pow on pow.workorder_code = qct.order_no
where bp.warehouse_cycle is not null and t.check_type in('checkTypeLL','checkTypeCP') and t.del_flag = '0' where bp.warehouse_cycle is not null and t.check_type in('checkTypeLL','checkTypeCP') and t.del_flag = '0' and pow.del_flag = '0'
<if test="materialCode != null">and t.material_code like concat('%',#{materialCode}, '%')</if> <if test="materialCode != null">and t.material_code like concat('%',#{materialCode}, '%')</if>
<if test="materialName != null">and t.material_name like concat('%',#{materialName}, '%')</if> <if test="materialName != null">and t.material_name like concat('%',#{materialName}, '%')</if>
<if test="orderNo != null">and t.order_no like concat('%',#{orderNo}, '%')</if> <if test="orderNo != null">and t.order_no like concat('%',#{orderNo}, '%')</if>
<if test="workorderCodeSap != null ">and pow.workorder_code_sap like concat('%',#{workorderCodeSap},'%')</if>
order by t.income_time desc,t.order_no,t.material_code order by t.income_time desc,t.order_no,t.material_code
<!-- <!--
)t0 )t0
where t0.days >= t0.warehouse_cycle --> where t0.days >= t0.warehouse_cycle -->

@ -271,6 +271,12 @@
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<delete id="clearTaskDetail">
delete from qc_check_task_detail where belong_to = #{recordId}
</delete>
<delete id="clearTaskDefect">
delete from qc_check_task_defect where belong_to = #{recordId}
</delete>
<select id="getProjectInfoList" resultType="com.op.quality.domain.QcCheckProject"> <select id="getProjectInfoList" resultType="com.op.quality.domain.QcCheckProject">
select select
id, id,

@ -205,6 +205,7 @@
left join pro_order_workorder pow on pow.workorder_code = qct.order_no left join pro_order_workorder pow on pow.workorder_code = qct.order_no
left join base_equipment be on be.equipment_code = qct.check_loc left join base_equipment be on be.equipment_code = qct.check_loc
where qct.check_type = 'checkTypeSCXJ' and qct.del_flag = '0' and pow.del_flag = '0' where qct.check_type = 'checkTypeSCXJ' and qct.del_flag = '0' and pow.del_flag = '0'
<if test="workorderCodeSap != null ">and pow.workorder_code_sap like concat('%',#{workorderCodeSap},'%')</if>
<if test="orderNo != null ">and qct.check_no like concat('%',#{orderNo},'%')</if> <if test="orderNo != null ">and qct.check_no like concat('%',#{orderNo},'%')</if>
<if test="materialCode != null ">and ( <if test="materialCode != null ">and (
qct.material_code like concat('%',#{materialCode},'%') or qct.material_name like concat('%',#{materialCode},'%') qct.material_code like concat('%',#{materialCode},'%') or qct.material_name like concat('%',#{materialCode},'%')
@ -877,7 +878,7 @@
<if test="ymdms == 'mm'"> <if test="ymdms == 'mm'">
and CONVERT(varchar(7),qct.create_time, 120) = #{incomeTimeStr} and CONVERT(varchar(7),qct.create_time, 120) = #{incomeTimeStr}
</if> </if>
<if test="ymdms == 'mm'"> <if test="ymdms == 'dd'">
and CONVERT(varchar(10),qct.create_time, 120) = #{incomeTimeStr} and CONVERT(varchar(10),qct.create_time, 120) = #{incomeTimeStr}
</if> </if>
</select> </select>
@ -1020,6 +1021,7 @@
left join base_equipment be on be.equipment_code = qct.check_loc left join base_equipment be on be.equipment_code = qct.check_loc
where qct.check_type = 'checkTypeSCXJ' and qct.del_flag = '0' and qct.check_status = '2' and be.del_flag = '0' and pow.del_flag = '0' where qct.check_type = 'checkTypeSCXJ' and qct.del_flag = '0' and qct.check_status = '2' and be.del_flag = '0' and pow.del_flag = '0'
<if test="orderNo != null ">and qct.check_no like concat('%',#{orderNo},'%')</if> <if test="orderNo != null ">and qct.check_no like concat('%',#{orderNo},'%')</if>
<if test="workorderCodeSap != null ">and pow.workorder_code_sap like concat('%',#{workorderCodeSap},'%')</if>
<if test="materialCode != null ">and qct.material_code like concat('%',#{materialCode},'%')</if> <if test="materialCode != null ">and qct.material_code like concat('%',#{materialCode},'%')</if>
<if test="incomeBatchNo != null ">and qct.income_batch_no like concat('%',#{incomeBatchNo},'%')</if> <if test="incomeBatchNo != null ">and qct.income_batch_no like concat('%',#{incomeBatchNo},'%')</if>
<if test="incomeTimeStr != null ">and CONVERT(varchar(10),pow.product_date, 120) = #{incomeTimeStr}</if> <if test="incomeTimeStr != null ">and CONVERT(varchar(10),pow.product_date, 120) = #{incomeTimeStr}</if>

@ -10,7 +10,7 @@ import com.op.common.core.utils.StringUtils;
import com.op.common.core.utils.bean.BeanValidators; import com.op.common.core.utils.bean.BeanValidators;
import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.security.utils.SecurityUtils; import com.op.common.security.utils.SecurityUtils;
import com.op.sap.domain.vo.SapWBDemand; import com.op.system.api.domain.sap.SapWBDemand;
import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO;
import com.op.system.api.domain.sap.SapBackflushMPQuery; import com.op.system.api.domain.sap.SapBackflushMPQuery;
import com.op.sap.domain.vo.SapItemQuery; import com.op.sap.domain.vo.SapItemQuery;
@ -25,7 +25,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Validator; import javax.validation.Validator;
import java.math.BigDecimal; import java.math.BigDecimal;

@ -2,6 +2,8 @@ package com.op.wms.controller;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.op.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -37,7 +39,7 @@ public class BpRawMaterialInController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:raw:list')") @RequiresPermissions("wms:raw:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(BpRawMaterialIn bpRawMaterialIn) public TableDataInfo list(BpRawMaterialIn bpRawMaterialIn)
{ {
@ -49,7 +51,7 @@ public class BpRawMaterialInController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:raw:export')") @RequiresPermissions("wms:raw:export")
@Log(title = "白坯原材料入库", businessType = BusinessType.EXPORT) @Log(title = "白坯原材料入库", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, BpRawMaterialIn bpRawMaterialIn) public void export(HttpServletResponse response, BpRawMaterialIn bpRawMaterialIn)
@ -62,7 +64,7 @@ public class BpRawMaterialInController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:raw:query')") @RequiresPermissions("wms:raw:query")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id) public AjaxResult getInfo(@PathVariable("id") String id)
{ {
@ -72,7 +74,7 @@ public class BpRawMaterialInController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:raw:add')") @RequiresPermissions("wms:raw:add")
@Log(title = "白坯原材料入库", businessType = BusinessType.INSERT) @Log(title = "白坯原材料入库", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody BpRawMaterialIn bpRawMaterialIn) public AjaxResult add(@RequestBody BpRawMaterialIn bpRawMaterialIn)
@ -83,7 +85,7 @@ public class BpRawMaterialInController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:raw:edit')") @RequiresPermissions("wms:raw:edit")
@Log(title = "白坯原材料入库", businessType = BusinessType.UPDATE) @Log(title = "白坯原材料入库", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody BpRawMaterialIn bpRawMaterialIn) public AjaxResult edit(@RequestBody BpRawMaterialIn bpRawMaterialIn)
@ -94,7 +96,7 @@ public class BpRawMaterialInController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:raw:remove')") @RequiresPermissions("wms:raw:remove")
@Log(title = "白坯原材料入库", businessType = BusinessType.DELETE) @Log(title = "白坯原材料入库", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids) public AjaxResult remove(@PathVariable String[] ids)

@ -4,6 +4,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.microsoft.windowsazure.exception.ServiceException; import com.microsoft.windowsazure.exception.ServiceException;
import com.op.common.security.annotation.RequiresPermissions;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -39,7 +40,7 @@ public class BpRawMaterialInDetailController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:detail:list')") @RequiresPermissions("wms:detail:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(BpRawMaterialInDetail bpRawMaterialInDetail) public TableDataInfo list(BpRawMaterialInDetail bpRawMaterialInDetail)
{ {
@ -51,7 +52,7 @@ public class BpRawMaterialInDetailController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:detail:export')") @RequiresPermissions("wms:detail:export")
@Log(title = "白坯原材料入库明细", businessType = BusinessType.EXPORT) @Log(title = "白坯原材料入库明细", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, BpRawMaterialInDetail bpRawMaterialInDetail) public void export(HttpServletResponse response, BpRawMaterialInDetail bpRawMaterialInDetail)
@ -64,7 +65,7 @@ public class BpRawMaterialInDetailController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:detail:query')") @RequiresPermissions("wms:detail:query")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id) public AjaxResult getInfo(@PathVariable("id") String id)
{ {
@ -74,7 +75,7 @@ public class BpRawMaterialInDetailController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:detail:add')") @RequiresPermissions("wms:detail:add")
@Log(title = "白坯原材料入库明细", businessType = BusinessType.INSERT) @Log(title = "白坯原材料入库明细", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody BpRawMaterialInDetail bpRawMaterialInDetail) throws ServiceException { public AjaxResult add(@RequestBody BpRawMaterialInDetail bpRawMaterialInDetail) throws ServiceException {
@ -84,7 +85,7 @@ public class BpRawMaterialInDetailController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:detail:edit')") @RequiresPermissions("wms:detail:edit")
@Log(title = "白坯原材料入库明细", businessType = BusinessType.UPDATE) @Log(title = "白坯原材料入库明细", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody BpRawMaterialInDetail bpRawMaterialInDetail) public AjaxResult edit(@RequestBody BpRawMaterialInDetail bpRawMaterialInDetail)
@ -95,11 +96,12 @@ public class BpRawMaterialInDetailController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('wms:detail:remove')") @RequiresPermissions("wms:detail:remove")
@Log(title = "白坯原材料入库明细", businessType = BusinessType.DELETE) @Log(title = "白坯原材料入库明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids) public AjaxResult remove(@PathVariable String[] ids)
{ {
return toAjax(bpRawMaterialInDetailService.deleteBpRawMaterialInDetailByIds(ids)); AjaxResult result= bpRawMaterialInDetailService.deleteBpRawMaterialInDetailByIds(ids);
return result;
} }
} }

@ -1,17 +1,25 @@
package com.op.wms.controller; package com.op.wms.controller;
import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.StringUtils;
import com.op.common.core.web.controller.BaseController;
import com.op.common.core.web.domain.AjaxResult;
import com.op.common.core.web.page.TableDataInfo;
import com.op.common.security.annotation.RequiresPermissions;
import com.op.wms.domain.BaseTeamT;
import com.op.wms.domain.ProOrderWorkorder;
import com.op.wms.domain.WmsToWCSDTO; import com.op.wms.domain.WmsToWCSDTO;
import com.op.wms.service.IWmsToWCSInterfaceService; import com.op.wms.service.IWmsToWCSInterfaceService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import java.util.List;
import org.springframework.web.bind.annotation.RestController;
import static com.op.common.core.utils.PageUtils.startPage;
import static com.op.common.core.web.domain.AjaxResult.success;
@RestController @RestController
@RequestMapping("/WmsToWCSInterface") @RequestMapping("/WmsToWCSInterface")
public class WmsToWCSInterfaceContorller { public class WmsToWCSInterfaceContorller extends BaseController {
@Autowired @Autowired
private IWmsToWCSInterfaceService wmsToWCSInterfaceService; private IWmsToWCSInterfaceService wmsToWCSInterfaceService;
@ -111,5 +119,25 @@ public class WmsToWCSInterfaceContorller {
return wmsToWCSInterfaceService.blankDesignatedPalletOutbound(wcsdto); return wmsToWCSInterfaceService.blankDesignatedPalletOutbound(wcsdto);
} }
/**
*
*/
@GetMapping("/listNe")
public TableDataInfo listNe(ProOrderWorkorder proOrderWorkorder) {
startPage();
List<ProOrderWorkorder> list = wmsToWCSInterfaceService.selectProOrderWorkorderList(proOrderWorkorder);
return getDataTable(list);
}
/**
* code
*
* @param code
* @return
*/
@GetMapping("/getWorkOrders/{code}")
public AjaxResult getWorkOrders(@PathVariable("code") String code) {
return wmsToWCSInterfaceService.getWorkOrders(code);
}
} }

@ -0,0 +1,73 @@
package com.op.wms.domain;
import java.io.Serializable;
import java.util.List;
/**
* Treeselect
*
* @author OP
*/
public class CascaderDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private Long id;
private String value;
/**
*
*/
private String label;
/**
*
*/
private List<CascaderDTO> children;
//
// public TreeSelect() {
//
// }
//
// public TreeSelect(SysDept dept) {
// this.id = dept.getDeptId();
// this.label = dept.getDeptName();
// this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
// }
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public List<CascaderDTO> getChildren() {
return children;
}
public void setChildren(List<CascaderDTO> children) {
this.children = children;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}

@ -34,6 +34,8 @@ public class ProOrderWorkorder extends TreeEntity {
*/ */
@Excel(name = "sap工单编码") @Excel(name = "sap工单编码")
private String workorderCodeSap; private String workorderCodeSap;
private String carNum;
private String sortNo;
public String getWorkorderCodeSap() { public String getWorkorderCodeSap() {
return workorderCodeSap; return workorderCodeSap;
@ -109,6 +111,17 @@ public class ProOrderWorkorder extends TreeEntity {
@Excel(name = "工艺编码") @Excel(name = "工艺编码")
private String routeCode; private String routeCode;
// 工艺名称
private String routeName;
public String getRouteName() {
return routeName;
}
public void setRouteName(String routeName) {
this.routeName = routeName;
}
/** /**
* 线 * 线
*/ */
@ -172,13 +185,23 @@ public class ProOrderWorkorder extends TreeEntity {
*/ */
@Excel(name = "预留字段3") @Excel(name = "预留字段3")
private String attr3; private String attr3;
private String atrr2;
public String getAtrr2() {
return atrr2;
}
public void setAtrr2(String atrr2) {
this.atrr2 = atrr2;
}
/** /**
* 4 * 4
*/ */
@Excel(name = "预留字段4") @Excel(name = "预留字段4")
private String attr4; private String attr4;
private String sapName;
private String sapCode;
/** /**
* *
*/ */
@ -190,6 +213,71 @@ public class ProOrderWorkorder extends TreeEntity {
private String attribute2; private String attribute2;
private String attribute3; private String attribute3;
private String waCode; private String waCode;
private String statusArray;
public String getStatusArray() {
return statusArray;
}
public void setStatusArray(String statusArray) {
this.statusArray = statusArray;
}
public String getCarNum() {
return carNum;
}
public void setCarNum(String carNum) {
this.carNum = carNum;
}
public String getSortNo() {
return sortNo;
}
public void setSortNo(String sortNo) {
this.sortNo = sortNo;
}
public String getSapName() {
return sapName;
}
public void setSapName(String sapName) {
this.sapName = sapName;
}
public String getSapCode() {
return sapCode;
}
public void setSapCode(String sapCode) {
this.sapCode = sapCode;
}
public String getPworkorderCodeSap() {
return pworkorderCodeSap;
}
public void setPworkorderCodeSap(String pworkorderCodeSap) {
this.pworkorderCodeSap = pworkorderCodeSap;
}
public String getPproductCode() {
return pproductCode;
}
public void setPproductCode(String pproductCode) {
this.pproductCode = pproductCode;
}
public String getPproductName() {
return pproductName;
}
public void setPproductName(String pproductName) {
this.pproductName = pproductName;
}
public String getWaCode() { public String getWaCode() {
return waCode; return waCode;
@ -285,7 +373,9 @@ public class ProOrderWorkorder extends TreeEntity {
// 物料id湿料计划模块使用 // 物料id湿料计划模块使用
private Integer materialId; private Integer materialId;
private String pworkorderCodeSap;
private String pproductCode;
private String pproductName;
// 物料编码(湿料计划模块使用) // 物料编码(湿料计划模块使用)
private String materialCode; private String materialCode;

@ -0,0 +1,329 @@
package com.op.wms.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* pro_wet_material_plan_detail
*
* @author Open Platform
* @date 2023-07-27
*/
public class ProWetMaterialPlanDetail extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* ID
*/
private String id;
/**
*
*/
@Excel(name = "计划工厂编码")
private String factoryCode;
/**
* id
*/
@Excel(name = "配料计划id")
private String wetMaterialPlanId;
/**
* id
*/
@Excel(name = "工单id")
private String workorderId;
/**
*
*/
private String atrr1;
/**
*
*/
private String atrr2;
/**
*
*/
private String atrr3;
/**
* 10
*/
@Excel(name = "是否接料", readConverterExp = "N=未接料,Y=已接料")
private String status;
/**
* id
*/
private String bucketId;
/**
*
*/
@Excel(name = "料罐编码")
private String bucketCode;
/**
*
*/
private String materialCode;
/**
* id
*/
private String materialId;
/**
*
*/
@Excel(name = "物料名称")
private String materialName;
/**
*
*/
@Excel(name = "产品名称")
private String productName;
/**
* id
*/
private Long shiftId;
/**
*
*/
private String shiftCode;
/**
*
*/
@Excel(name = "班次简称")
private String shiftDesc;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "计划日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 1)
private Date planTime;
// 工单编码
private String workorderCode;
// 工单日期
@JsonFormat(pattern = "yyyy-MM-dd")
private Date productDate;
// 料罐名称
private String bucketName;
public String getBucketName() {
return bucketName;
}
public void setBucketName(String bucketName) {
this.bucketName = bucketName;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFactoryCode() {
return factoryCode;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getWetMaterialPlanId() {
return wetMaterialPlanId;
}
public void setWetMaterialPlanId(String wetMaterialPlanId) {
this.wetMaterialPlanId = wetMaterialPlanId;
}
public String getWorkorderId() {
return workorderId;
}
public void setWorkorderId(String workorderId) {
this.workorderId = workorderId;
}
public String getAtrr1() {
return atrr1;
}
public void setAtrr1(String atrr1) {
this.atrr1 = atrr1;
}
public String getAtrr2() {
return atrr2;
}
public void setAtrr2(String atrr2) {
this.atrr2 = atrr2;
}
public String getAtrr3() {
return atrr3;
}
public void setAtrr3(String atrr3) {
this.atrr3 = atrr3;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getBucketId() {
return bucketId;
}
public void setBucketId(String bucketId) {
this.bucketId = bucketId;
}
public String getBucketCode() {
return bucketCode;
}
public void setBucketCode(String bucketCode) {
this.bucketCode = bucketCode;
}
public String getMaterialCode() {
return materialCode;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getMaterialId() {
return materialId;
}
public void setMaterialId(String materialId) {
this.materialId = materialId;
}
public String getMaterialName() {
return materialName;
}
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public Long getShiftId() {
return shiftId;
}
public void setShiftId(Long shiftId) {
this.shiftId = shiftId;
}
public String getShiftCode() {
return shiftCode;
}
public void setShiftCode(String shiftCode) {
this.shiftCode = shiftCode;
}
public String getShiftDesc() {
return shiftDesc;
}
public void setShiftDesc(String shiftDesc) {
this.shiftDesc = shiftDesc;
}
public Date getPlanTime() {
return planTime;
}
public void setPlanTime(Date planTime) {
this.planTime = planTime;
}
public String getWorkorderCode() {
return workorderCode;
}
public void setWorkorderCode(String workorderCode) {
this.workorderCode = workorderCode;
}
public Date getProductDate() {
return productDate;
}
public void setProductDate(Date productDate) {
this.productDate = productDate;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("factoryCode", getFactoryCode())
.append("wetMaterialPlanId", getWetMaterialPlanId())
.append("workorderId", getWorkorderId())
.append("atrr1", getAtrr1())
.append("atrr2", getAtrr2())
.append("atrr3", getAtrr3())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("bucketId", getBucketId())
.append("bucketCode", getBucketCode())
.append("materialCode", getMaterialCode())
.append("materialId", getMaterialId())
.append("materialName", getMaterialName())
.append("productName", getProductName())
.append("shiftId", getShiftId())
.append("shiftCode", getShiftCode())
.append("shiftDesc", getShiftDesc())
.append("planTime", getPlanTime())
.append("workorderCode", getWorkorderCode())
.append("productDate", getProductDate())
.append("bucketName", getBucketName())
.toString();
}
}

@ -0,0 +1,22 @@
package com.op.wms.mapper;
import com.op.wms.domain.CascaderDTO;
import org.apache.ibatis.annotations.MapKey;
import java.util.Map;
/**
* Mapper
*
* @author Open Platform
* @date 2023-07-13
*/
public interface ProOrderMapper {
@MapKey("value")
Map<String, CascaderDTO> getEquipInfoByCodes(String equipCodes);
}

@ -0,0 +1,30 @@
package com.op.wms.mapper;
import com.op.wms.domain.ProOrderWorkorder;
import com.op.wms.domain.ProWetMaterialPlanDetail;
import java.util.List;
/**
* Mapper
*
* @author Open Platform
* @date 2023-07-18
*/
public interface ProOrderWorkorderMapper {
List<ProOrderWorkorder> selectProOrderWorkorderList999(ProOrderWorkorder proOrderWorkorder);
ProWetMaterialPlanDetail getWetMaterial(String workorderId);
List<ProOrderWorkorder> selectProOrderWorkorderList(ProOrderWorkorder proOrderWorkorder);
String selectRouteNameByRouteCode(String routeCode);
ProOrderWorkorder selectWorkOrderByCode(String code);
}

@ -1,7 +1,12 @@
package com.op.wms.mapper; package com.op.wms.mapper;
import com.op.wms.domain.ProOrderWorkorder;
import com.op.wms.domain.ProWetMaterialPlanDetail;
import com.op.wms.domain.WmsToWCSDTO; import com.op.wms.domain.WmsToWCSDTO;
import java.util.List;
public interface WmsToWCSInterfaceMapper { public interface WmsToWCSInterfaceMapper {
WmsToWCSDTO selectWmsToWCSDTO(WmsToWCSDTO wcsdto); WmsToWCSDTO selectWmsToWCSDTO(WmsToWCSDTO wcsdto);
} }

@ -3,6 +3,7 @@ package com.op.wms.service;
import java.util.List; import java.util.List;
import com.microsoft.windowsazure.exception.ServiceException; import com.microsoft.windowsazure.exception.ServiceException;
import com.op.common.core.web.domain.AjaxResult;
import com.op.wms.domain.BpRawMaterialInDetail; import com.op.wms.domain.BpRawMaterialInDetail;
/** /**
@ -51,7 +52,7 @@ public interface IBpRawMaterialInDetailService
* @param ids * @param ids
* @return * @return
*/ */
public int deleteBpRawMaterialInDetailByIds(String[] ids); public AjaxResult deleteBpRawMaterialInDetailByIds(String[] ids);
/** /**
* *

@ -1,7 +1,11 @@
package com.op.wms.service; package com.op.wms.service;
import com.op.common.core.web.domain.AjaxResult;
import com.op.wms.domain.ProOrderWorkorder;
import com.op.wms.domain.WmsToWCSDTO; import com.op.wms.domain.WmsToWCSDTO;
import java.util.List;
public interface IWmsToWCSInterfaceService { public interface IWmsToWCSInterfaceService {
WmsToWCSDTO requestMaterialLoadNo(WmsToWCSDTO wcsdto); WmsToWCSDTO requestMaterialLoadNo(WmsToWCSDTO wcsdto);
@ -12,4 +16,8 @@ public interface IWmsToWCSInterfaceService {
WmsToWCSDTO issuanceOfBlankOutboundDemand(WmsToWCSDTO wcsdto); WmsToWCSDTO issuanceOfBlankOutboundDemand(WmsToWCSDTO wcsdto);
WmsToWCSDTO blankDesignatedPalletOutbound(WmsToWCSDTO wcsdto); WmsToWCSDTO blankDesignatedPalletOutbound(WmsToWCSDTO wcsdto);
List<ProOrderWorkorder> selectProOrderWorkorderList(ProOrderWorkorder proOrderWorkorder);
AjaxResult getWorkOrders(String code);
} }

@ -7,6 +7,7 @@ import com.baomidou.dynamic.datasource.annotation.DS;
import com.microsoft.windowsazure.exception.ServiceException; import com.microsoft.windowsazure.exception.ServiceException;
import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.context.SecurityContextHolder;
import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.core.web.domain.AjaxResult;
import com.op.wms.domain.BaseProduct; import com.op.wms.domain.BaseProduct;
import com.op.wms.domain.BpRawMaterialIn; import com.op.wms.domain.BpRawMaterialIn;
import com.op.wms.mapper.BaseProductMapper; import com.op.wms.mapper.BaseProductMapper;
@ -72,6 +73,7 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS
@Override @Override
@DS("#header.poolName") @DS("#header.poolName")
public int insertBpRawMaterialInDetail(BpRawMaterialInDetail bpRawMaterialInDetail) throws ServiceException { public int insertBpRawMaterialInDetail(BpRawMaterialInDetail bpRawMaterialInDetail) throws ServiceException {
int reselt=1;
//获取当前所选工厂 //获取当前所选工厂
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String key = "#header.poolName"; String key = "#header.poolName";
@ -103,7 +105,7 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS
bpRawMaterialIn1.setMaterialCode(String.valueOf(baseProduct)); bpRawMaterialIn1.setMaterialCode(String.valueOf(baseProduct));
bpRawMaterialIn1.setUnit(bpRawMaterialInDetail.getUnit()); bpRawMaterialIn1.setUnit(bpRawMaterialInDetail.getUnit());
bpRawMaterialIn1.setAmountReal(bpRawMaterialInDetail.getAmountReal()); bpRawMaterialIn1.setAmountReal(bpRawMaterialInDetail.getAmountReal());
bpRawMaterialInMapper.insertBpRawMaterialIn(bpRawMaterialIn1); reselt=bpRawMaterialInMapper.insertBpRawMaterialIn(bpRawMaterialIn1);
}else { }else {
//物料存在,加库存 //物料存在,加库存
bpRawMaterialIn.getAmountReal();//原有 bpRawMaterialIn.getAmountReal();//原有
@ -111,7 +113,6 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS
bpRawMaterialIn.setAmountReal(bpRawMaterialIn.getAmountReal()+bpRawMaterialInDetail.getAmountReal()); bpRawMaterialIn.setAmountReal(bpRawMaterialIn.getAmountReal()+bpRawMaterialInDetail.getAmountReal());
bpRawMaterialInMapper.updateBpRawMaterialIn(bpRawMaterialIn); bpRawMaterialInMapper.updateBpRawMaterialIn(bpRawMaterialIn);
} }
int reselt=1;
return reselt; return reselt;
} }
@ -136,9 +137,24 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS
*/ */
@Override @Override
@DS("#header.poolName") @DS("#header.poolName")
public int deleteBpRawMaterialInDetailByIds(String[] ids) public AjaxResult deleteBpRawMaterialInDetailByIds(String[] ids)
{ {
return bpRawMaterialInDetailMapper.deleteBpRawMaterialInDetailByIds(ids); for (String id : ids) {
BpRawMaterialInDetail bpRawMaterialInDetail = bpRawMaterialInDetailMapper.selectBpRawMaterialInDetailById(id);
BpRawMaterialIn bpRawMaterialIn = bpRawMaterialInMapper.selectBpRawMaterialInBymateriaName(bpRawMaterialInDetail.getMaterialName());
if (bpRawMaterialIn==null){
bpRawMaterialInDetailMapper.deleteBpRawMaterialInDetailById(id);
}else {
if (bpRawMaterialIn.getAmountReal()>=bpRawMaterialInDetail.getAmountReal()){
bpRawMaterialInDetailMapper.deleteBpRawMaterialInDetailById(id);
bpRawMaterialIn.setAmountReal(bpRawMaterialIn.getAmountReal()-bpRawMaterialInDetail.getAmountReal());
bpRawMaterialInMapper.updateBpRawMaterialIn(bpRawMaterialIn);
}else {
return AjaxResult.error();
}
}
}
return AjaxResult.success();
} }
/** /**
@ -149,8 +165,7 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS
*/ */
@Override @Override
@DS("#header.poolName") @DS("#header.poolName")
public int deleteBpRawMaterialInDetailById(String id) public int deleteBpRawMaterialInDetailById(String id) {
{
return bpRawMaterialInDetailMapper.deleteBpRawMaterialInDetailById(id); return bpRawMaterialInDetailMapper.deleteBpRawMaterialInDetailById(id);
} }
} }

@ -628,7 +628,6 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
public ProOrderWorkorder selectWmsOdsWhiteEmbryoInhAnd(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIns) { public ProOrderWorkorder selectWmsOdsWhiteEmbryoInhAnd(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIns) {
//pro order workorder //pro order workorder
//ipro order workorder batch //ipro order workorder batch
DynamicDataSourceContextHolder.push("ds_" + wmsOdsWhiteEmbryoIns.getSiteCode()); DynamicDataSourceContextHolder.push("ds_" + wmsOdsWhiteEmbryoIns.getSiteCode());
ProOrderWorkorder proOrderWorkorder= wmsOdsWhiteEmbryoInMapper.selectProOrderWorkorder(wmsOdsWhiteEmbryoIns); ProOrderWorkorder proOrderWorkorder= wmsOdsWhiteEmbryoInMapper.selectProOrderWorkorder(wmsOdsWhiteEmbryoIns);
if (proOrderWorkorder!=null){ if (proOrderWorkorder!=null){
@ -644,6 +643,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
proOrderWorkorder.setProOrderWorkorderBatchList(proOrderWorkorderBatchList); proOrderWorkorder.setProOrderWorkorderBatchList(proOrderWorkorderBatchList);
} }
proOrderWorkorder.setUnit("辆");
return proOrderWorkorder; return proOrderWorkorder;
} }
@ -693,6 +693,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
wmsOdsEmStorageNewsSn.setCreateBy(wmsOdsWhiteEmbryoIn.getCreateBy()); wmsOdsEmStorageNewsSn.setCreateBy(wmsOdsWhiteEmbryoIn.getCreateBy());
wmsOdsEmStorageNewsSn.setGmtCreate(new Date()); wmsOdsEmStorageNewsSn.setGmtCreate(new Date());
wmsOdsEmStorageNewsSn.setActiveFlag("1"); wmsOdsEmStorageNewsSn.setActiveFlag("1");
wmsOdsEmStorageNewsSn.setUserDefined1(wmsOdsWhiteEmbryoIn.getOrderCode());
wmsOdsEmStorageNewsSn.setFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode()); wmsOdsEmStorageNewsSn.setFactoryCode(wmsOdsWhiteEmbryoIn.getSiteCode());
wmsOdsEmStorageNewsSnMapper.insertWmsOdsEmStorageNewsSn(wmsOdsEmStorageNewsSn); wmsOdsEmStorageNewsSnMapper.insertWmsOdsEmStorageNewsSn(wmsOdsEmStorageNewsSn);
WmsOdsEmStorageNews wmsOdsEmStorageNews=new WmsOdsEmStorageNews(); WmsOdsEmStorageNews wmsOdsEmStorageNews=new WmsOdsEmStorageNews();

@ -1,18 +1,27 @@
package com.op.wms.service.impl; package com.op.wms.service.impl;
import com.alibaba.fastjson2.JSONArray;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.core.web.domain.AjaxResult;
import com.op.wms.domain.*; import com.op.wms.domain.*;
import com.op.wms.mapper.*; import com.op.wms.mapper.*;
import com.op.wms.service.IWmsToWCSInterfaceService; import com.op.wms.service.IWmsToWCSInterfaceService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import static com.op.common.core.web.domain.AjaxResult.success;
@Service @Service
public class WmsToWCSInterfaceServiceImpl implements IWmsToWCSInterfaceService { public class WmsToWCSInterfaceServiceImpl implements IWmsToWCSInterfaceService {
@ -26,6 +35,10 @@ public class WmsToWCSInterfaceServiceImpl implements IWmsToWCSInterfaceService {
private WmsOdsEmStorageNewsMapper wmsOdsEmStorageNewsMapper; private WmsOdsEmStorageNewsMapper wmsOdsEmStorageNewsMapper;
@Autowired @Autowired
private OdsWhiteEmbryoMapper odsWhiteEmbryoMapper; private OdsWhiteEmbryoMapper odsWhiteEmbryoMapper;
@Autowired
private ProOrderMapper proOrderMapper;
@Autowired
private ProOrderWorkorderMapper proOrderWorkorderMapper;
@Override @Override
@DS("#header.poolName") @DS("#header.poolName")
@ -144,4 +157,72 @@ public class WmsToWCSInterfaceServiceImpl implements IWmsToWCSInterfaceService {
return null; return null;
} }
@Override
@DS("#header.poolName")
public List<ProOrderWorkorder> selectProOrderWorkorderList(ProOrderWorkorder proOrderWorkorder) {
List<ProOrderWorkorder> workorderList = null;
String key = "#header.poolName";
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String factoryCode = request.getHeader(key.substring(8)).replace("ds_", "");
if ("999".equals(factoryCode)) {
workorderList = proOrderWorkorderMapper.selectProOrderWorkorderList999(proOrderWorkorder);
for (ProOrderWorkorder owork : workorderList) {
ProWetMaterialPlanDetail material = proOrderWorkorderMapper.getWetMaterial(owork.getWorkorderId());
owork.setMaterialCode(material.getMaterialCode());
owork.setMaterialName(material.getMaterialName());
}
} else {
workorderList = proOrderWorkorderMapper.selectProOrderWorkorderList(proOrderWorkorder);
}
for (ProOrderWorkorder workorder : workorderList) {
String prodLineName = "";
String equipCods = "'";
System.out.println("workorder_id:" + workorder.getWorkorderId());
System.out.println("prodLineCode:" + workorder.getProdLineCode());
JSONArray codeArray = JSONArray.parseArray(workorder.getProdLineCode());
for (int c = 0; c < codeArray.size(); c++) {
equipCods += codeArray.getJSONArray(c).getString(1) + "','";
}
Map<String, CascaderDTO> equipMap = proOrderMapper.getEquipInfoByCodes(equipCods.substring(1));//设备字典
for (int c = 0; c < codeArray.size(); c++) {
String equipCode = codeArray.getJSONArray(c).getString(1);
CascaderDTO eInfo = equipMap.get(equipCode);
if (eInfo != null) {
prodLineName += eInfo.getLabel() + ",";
}
}
workorder.setProdLineName(prodLineName);
// // 通过设备code查询出机型名称
// workorder.setProdLineCode(proOrderMapper.selectProdLineName(workorder.getProdLineCode()));
// 通过工艺编码code查询出机型名称
workorder.setRouteName(proOrderWorkorderMapper.selectRouteNameByRouteCode(workorder.getRouteCode()));
//
// //批次信息(母)
// List<String> batchs = proOrderWorkorderMapper.getBatchInfo(workorder.getWorkorderId());
// workorder.setBatchInfo(batchs);
}
for (ProOrderWorkorder proOrderWorkorder1:workorderList){
proOrderWorkorder1.setUnit("辆");
}
return workorderList;
}
@Override
@DS("#header.poolName")
public AjaxResult getWorkOrders(String code) {
// 创建返回工单列表
List<ProOrderWorkorder> proOrderWorkorderList = new ArrayList<ProOrderWorkorder>();
// 查询该工单信息
ProOrderWorkorder pWorkorder = proOrderWorkorderMapper.selectWorkOrderByCode(code);
proOrderWorkorderList.add(pWorkorder);
for (ProOrderWorkorder proOrderWorkorder1:proOrderWorkorderList){
proOrderWorkorder1.setUnit("辆");
}
return success(proOrderWorkorderList);
}
} }

@ -1486,6 +1486,7 @@
user_defined2 userDefined2, user_defined2 userDefined2,
create_by createBy, create_by createBy,
gmt_create createDate, gmt_create createDate,
user_defined4 userDefined4,
user_defined3 userDefined3 user_defined3 userDefined3
FROM FROM
wms_raw_mission_out wms_raw_mission_out

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.op.wms.mapper.ProOrderMapper">
<select id="getEquipInfoByCodes" resultType="com.op.wms.domain.CascaderDTO">
select equipment_code value,equipment_name label from base_equipment where equipment_code in
('${equipCodes}')
</select>
</mapper>

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.op.wms.mapper.ProOrderWorkorderMapper">
<resultMap type="ProOrderWorkorder" id="ProOrderWorkorderResult">
<result property="workorderId" column="workorder_id"/>
<result property="workorderCode" column="workorder_code"/>
<result property="workorderName" column="workorder_name"/>
<result property="orderId" column="order_id"/>
<result property="orderCode" column="order_code"/>
<result property="productId" column="product_id"/>
<result property="productCode" column="product_code"/>
<result property="productName" column="product_name"/>
<result property="productSpc" column="product_spc"/>
<result property="unit" column="unit"/>
<result property="quantityProduced" column="quantity_produced"/>
<result property="quantitySplit" column="quantity_split"/>
<result property="routeCode" column="route_code"/>
<result property="prodLineCode" column="prod_line_code"/>
<result property="productDate" column="product_date"/>
<result property="shiftId" column="shift_id"/>
<result property="parentOrder" column="parent_order"/>
<result property="ancestors" column="ancestors"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
<result property="attr1" column="attr1"/>
<result property="attr2" column="attr2"/>
<result property="atrr2" column="atrr2"/>
<result property="attr3" column="attr3"/>
<result property="attr4" column="attr4"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="prodType" column="prod_type"/>
<result property="factoryCode" column="factory_code"/>
<result property="endFlag" column="end_flag"/>
<result property="carNum" column="car_num"/>
<result property="sortNo" column="sort_no"/>
<result property="workorderCodeSap" column="workorder_code_sap"/>
<result property="pproductCode" column="pproductCode"/>
<result property="pproductName" column="pproductName"/>
<result property="pworkorderCodeSap" column="pworkorderCodeSap"/>
<result property="materialCode" column="material_code"/>
<result property="materialName" column="material_name"/>
<result property="sapCode" column="sap_code"/>
<result property="sapName" column="sap_Name"/>
</resultMap>
<select id="selectProOrderWorkorderList999" resultMap="ProOrderWorkorderResult">
select pow.workorder_id, pow.workorder_code, pow.workorder_name, pow.order_id, pow.order_code, pow.product_id,
pow.product_code, pow.product_name,pow.product_spc, pow.unit, pow.quantity_produced, pow.quantity_split,
pow.route_code, pow.prod_line_code, pow.product_date,pow.shift_id, pow.parent_order, pow.ancestors, pow.status,
pow.remark, pow.attr1, pow.attr2, pow.attr3, pow.attr4, pow.create_by, pow.create_time,
pow.update_by, pow.update_time, pow.prod_type, pow.factory_code , pow.end_flag , pow.car_num,pow.sort_no,
pow.workorder_code_sap
from pro_order_workorder pow
<where>
<if test="workorderCode != null and workorderCode != ''">and pow.workorder_code like concat('%',
#{workorderCode}, '%')
</if>
<if test="workorderName != null and workorderName != ''">and pow.workorder_name like concat('%',
#{workorderName}, '%')
</if>
<if test="orderId != null and orderId != ''">and pow.order_id = #{orderId}</if>
<if test="orderCode != null and orderCode != ''">and pow.order_code like concat('%', #{orderCode}, '%')
</if>
<if test="productId != null and productId != ''">and pow.product_id = #{productId}</if>
<if test="productCode != null and productCode != ''">and pow.product_code like concat('%', #{productCode},
'%')
</if>
<if test="productName != null and productName != ''">and pow.product_name like concat('%', #{productName},
'%')
</if>
<if test="productSpc != null and productSpc != ''">and pow.product_spc = #{productSpc}</if>
<if test="unit != null and unit != ''">and pow.unit = #{unit}</if>
<if test="quantityProduced != null ">and pow.quantity_produced = #{quantityProduced}</if>
<if test="quantitySplit != null ">and pow.quantity_split = #{quantitySplit}</if>
<if test="routeCode != null and routeCode != ''">and pow.route_code = #{routeCode}</if>
<if test="prodLineCode != null and prodLineCode != ''">and pow.prod_line_code = #{prodLineCode}</if>
<if test="productDate != null ">and pow.product_date = #{productDate}</if>
<if test="shiftId != null and shiftId != ''">and pow.shift_id = #{shiftId}</if>
<if test="parentOrder != null and parentOrder != ''">and pow.parent_order = #{parentOrder}</if>
<if test="ancestors != null and ancestors != ''">and pow.ancestors = #{ancestors}</if>
<if test="status != null and status != ''">and pow.status = #{status}</if>
<if test="statusArray != null and statusArray != ''">and pow.status in (${statusArray})</if>
<if test="attr1 != null and attr1 != ''">and pow.attr1 = #{attr1}</if>
<if test="attr2 != null and attr2 != ''">and pow.attr2 = #{attr2}</if>
<if test="attr3 != null and attr3 != ''">and pow.attr3 = #{attr3}</if>
<if test="attr4 != null and attr4 != ''">and pow.attr4 = #{attr4}</if>
<if test="prodType != null and prodType != ''">and pow.prod_type = #{prodType}</if>
<if test="factoryCode != null and factoryCode != ''">and pow.factory_code = #{factoryCode}</if>
<if test="endFlag != null and endFlag != ''">and pow.end_flag = #{endFlag}</if>
<if test="productDateStart != null ">and CONVERT(varchar(10),pow.product_date, 120) >=
'${productDateStart}'
</if>
<if test="productDateEnd != null ">and '${productDateEnd}%' >= CONVERT(varchar(10),pow.product_date, 120)
</if>
and pow.del_flag = '0'
</where>
order by pow.product_date desc
</select>
<sql id="selectProOrderWorkorderVo">
select workorder_id, workorder_code, workorder_name, order_id, order_code, product_id, product_code, product_name,
product_spc, unit, quantity_produced, quantity_split, route_code, prod_line_code, product_date,
shift_id, parent_order, ancestors, status, remark, attr1, attr2, attr3, attr4, create_by, create_time,
update_by, update_time, prod_type, factory_code , end_flag , car_num,sort_no,workorder_code_sap
from pro_order_workorder
</sql>
<select id="selectWorkOrderByCode" resultMap="ProOrderWorkorderResult">
<include refid="selectProOrderWorkorderVo"/>
where workorder_code = #{workorderCode}
and del_flag = '0'
</select>
<select id="getWetMaterial" resultType="com.op.wms.domain.ProWetMaterialPlanDetail">
select top 1 material_code materialCode,
material_name materialName
from pro_wet_material_plan_detail
where workorder_id = #{workorderId} order by create_time desc
</select>
<select id="selectRouteNameByRouteCode" resultType="java.lang.String">
select route_name from pro_route where route_code = #{routeCode}
</select>
<select id="selectProOrderWorkorderList" parameterType="ProOrderWorkorder" resultMap="ProOrderWorkorderResult">
select pow.workorder_id, pow.workorder_code, pow.workorder_name, pow.order_id, pow.order_code,
pow.product_code, pow.product_name,pow.product_spc, pow.unit, pow.quantity_split,
pow.route_code, pow.prod_line_code, pow.product_date,
pow.shift_id, pow.parent_order,pow.status, pow.prod_type,pow.factory_code,
pow.end_flag,pow.car_num,pow.sort_no,
pow.workorder_code_sap,
ppow.product_code pproductCode,ppow.product_name pproductName,ppow.workorder_code_sap pworkorderCodeSap
from pro_order_workorder pow
left join pro_order_workorder ppow on pow.parent_order = ppow.workorder_code and ppow.del_flag = '0'
<where>
<if test="workorderCode != null and workorderCode != ''">and pow.workorder_code like concat('%',
#{workorderCode}, '%')
</if>
<if test="workorderName != null and workorderName != ''">and pow.workorder_name like concat('%',
#{workorderName}, '%')
</if>
<if test="orderId != null and orderId != ''">and pow.order_id = #{orderId}</if>
<if test="orderCode != null and orderCode != ''">and pow.order_code like concat('%', #{orderCode}, '%')
</if>
<if test="productCode != null and productCode != ''">and ppow.product_code like concat('%', #{productCode},
'%')
</if>
<if test="productName != null and productName != ''">and ppow.product_name like concat('%', #{productName},
'%')
</if>
<if test="productDate != null ">and pow.product_date = #{productDate}</if>
<if test="shiftId != null and shiftId != ''">and pow.shift_id = #{shiftId}</if>
<if test="parentOrder != null and parentOrder != ''">and pow.parent_order = #{parentOrder}</if>
<if test="status != null and status != ''">and pow.status = #{status}</if>
<if test="statusArray != null and statusArray != ''">and pow.status in (${statusArray})</if>
<if test="prodType != null and prodType != ''">and pow.prod_type = #{prodType}</if>
<if test="factoryCode != null and factoryCode != ''">and pow.factory_code = #{factoryCode}</if>
<if test="endFlag != null and endFlag != ''">and pow.end_flag = #{endFlag}</if>
<if test="productDateStart != null ">and CONVERT(varchar(10),pow.product_date, 120) >=
'${productDateStart}'
</if>
<if test="productDateEnd != null ">and '${productDateEnd}' >= CONVERT(varchar(10),pow.product_date, 120)
</if>
and pow.del_flag = '0'
</where>
order by pow.product_date desc
</select>
</mapper>

@ -254,6 +254,7 @@
product_date productDate, product_date productDate,
factory_code factoryCode, factory_code factoryCode,
prod_type prodType, prod_type prodType,
attr1,
workorder_code_sap workorderCodeSap workorder_code_sap workorderCodeSap
FROM FROM
pro_order_workorder pro_order_workorder

Loading…
Cancel
Save