Merge remote-tracking branch 'origin/master'

master
Yangwl 8 months ago
commit c8006b88c0

@ -118,7 +118,7 @@ public class EquPlanController extends BaseController {
*
*/
@RequiresPermissions("device:inspectionPlan:export")
@Log(title = "计划", businessType = BusinessType.EXPORT)
@Log(title = "导出计划", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, EquPlan equPlan) {
List<EquPlan> list = equPlanService.selectEquPlanList(equPlan);
@ -139,7 +139,7 @@ public class EquPlanController extends BaseController {
*
*/
@RequiresPermissions("device:inspectionPlan:add")
@Log(title = "计划", businessType = BusinessType.INSERT)
@Log(title = "新增计划", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody EquPlan equPlan) {
return equPlanService.insertEquPlan(equPlan);
@ -149,7 +149,7 @@ public class EquPlanController extends BaseController {
*
*/
@RequiresPermissions("device:inspectionPlan:edit")
@Log(title = "计划", businessType = BusinessType.UPDATE)
@Log(title = "修改计划", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody EquPlan equPlan) {
return equPlanService.updateEquPlan(equPlan);
@ -159,7 +159,7 @@ public class EquPlanController extends BaseController {
*
*/
@RequiresPermissions("device:inspectionPlan:remove")
@Log(title = "计划", businessType = BusinessType.DELETE)
@Log(title = "删除计划", businessType = BusinessType.DELETE)
@DeleteMapping("/{planIds}")
public AjaxResult remove(@PathVariable String[] planIds) {
return equPlanService.deleteEquPlanByPlanIds(planIds);

@ -205,6 +205,9 @@ public class EquPlan extends BaseEntity {
@Excel(name = "委外原因")
private String workReason;
//jgy 新增 生产线体编码 每天生成线体信息的时候只生成计划生产的
private String lineCode;
public String getWorkOutsourcingUnit() {
return workOutsourcingUnit;
}
@ -581,6 +584,14 @@ public class EquPlan extends BaseEntity {
return delFlag;
}
public void setLineCode(String lineCode) {
this.lineCode = lineCode;
}
public String getLineCode() {
return lineCode;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -1,12 +1,8 @@
package com.op.device.mapper;
import com.op.common.core.domain.BaseFileData;
import com.op.device.domain.EquFile;
import com.op.device.domain.EquOrder;
import com.op.device.domain.EquPlan;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
@ -23,4 +19,6 @@ public interface DeviceTaskMapper {
EquOrder getNewTaskOrder(EquPlan quPlan);
EquOrder getNewTaskOrder0(EquPlan plan);
List<String> getPlanProduceLine();//计划生产产线查询
}

@ -1,14 +1,12 @@
package com.op.device.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
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.StringUtils;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.core.web.domain.AjaxResult;
import com.op.common.security.utils.SecurityUtils;
import com.op.device.domain.*;
import com.op.device.mapper.*;
import com.op.device.service.IDeviceTaskService;
@ -19,18 +17,15 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.op.common.core.web.domain.AjaxResult.error;
import static com.op.common.core.web.domain.AjaxResult.success;
@ -253,8 +248,9 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
EquPlan equPlan = new EquPlan();
equPlan.setPlanType("spotInspection");
List<EquPlan> plans = deviceTaskMapper.getPlans(equPlan);
List<EquPlan> producePlans = this.confirmPlanProduceLine(plans,poolName);
for (EquPlan plan : plans) {
for (EquPlan plan : producePlans) {
EquOrder hasTask = deviceTaskMapper.getNewTaskOrder(plan);
if (hasTask == null || Integer.parseInt(plan.getPlanLoop()) <= hasTask.getDays() || checkHourTask(hasTask, plan)) {
//生成点检计划
@ -560,4 +556,48 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
System.out.println("------>" + batchCount);
}
//筛选出 当天要计划生成的数据
private List<EquPlan> confirmPlanProduceLine(List<EquPlan> plans,String poolName) {
//查询到当天要生产的产线
List<String> planProduceLine = deviceTaskMapper.getPlanProduceLine();//计划生产产线
List<String> planProduceLineCode = new ArrayList<>();
List<String> produceLine = new ArrayList<>();
for(String str : planProduceLine){
str = str.substring(1, str.length() - 1);
String[] subArrays = str.split("],\\[");
for (String subArrayStr : subArrays) {
subArrayStr = subArrayStr.substring(1, subArrayStr.length() - 1);
String[] parts = subArrayStr.split("\",\"");
for (int i = 1 ; i < parts.length ; i++) {
if(i == parts.length - 1){
planProduceLineCode.add(parts[i].replaceAll("\"", ""));
}else{
planProduceLineCode.add(parts[i]);
}
}
}
}
List<String> uniqueLineCodeList = planProduceLineCode.stream().distinct().collect(Collectors.toList());
List<EquPlan> returnPlanList = new ArrayList<>();
if(!CollectionUtils.isEmpty(uniqueLineCodeList) && !CollectionUtils.isEmpty(plans)){
for(String lineCode : uniqueLineCodeList){
for(EquPlan equPlan : plans){
if(!StringUtils.isBlank(equPlan.getLineCode())){
if(equPlan.getLineCode().equals(lineCode)){
returnPlanList.add(equPlan);
produceLine.add(lineCode);//生成产线
}
}
}
}
}
produceLine = produceLine.stream().distinct().collect(Collectors.toList());
logger.info(poolName + "工厂今日生成的产线:" + JSONArray.toJSONString(produceLine));
logger.info(poolName + "工厂返回生成今日生产的产线点检计划信息:" + JSONArray.toJSONString(returnPlanList));
return returnPlanList;
}
}

@ -25,11 +25,18 @@
ep.plan_code planCode,
epe.equipment_code equipmentCode,
epe.equipment_name equipmentName,
ebae.equipment_code lineCode,
epe.id planEquId
from equ_plan ep
left join equ_plan_equ epe on ep.plan_code = epe.plan_code
left join equ_bind_auxiliary_equipment ebae on epe.equipment_code = ebae.auxiliary_equipment_code
where ep.del_flag = '0' and epe.del_flag = '0' and ep.plan_status = '0'
and epe.equipment_code in ( select be.equipment_code from base_equipment be where be.del_flag = '0' )
and epe.equipment_code in(
select be.equipment_code from base_equipment be
left join equ_bind_auxiliary_equipment ebae0 on be.equipment_code = ebae0.auxiliary_equipment_code
where be.del_flag = '0'
and ebae0.del_flag = '0'
)
and ep.plan_type = #{planType}
and CONVERT(varchar(10),GETDATE(), 120) >= CONVERT(varchar(10),ep.plan_loop_start, 120)
<if test='planType=="inspection" or planType=="maintenance" '>
@ -66,4 +73,11 @@
and del_flag = '0'
order by create_time desc
</select>
<select id="getPlanProduceLine" resultType="java.lang.String">
select prod_line_code AS planProduceLine
from pro_order_workorder pow
where CONVERT(varchar(10),pow.product_date, 120) = CONVERT(varchar(10),GETDATE(), 120)
and status = 'w1'
</select>
</mapper>

@ -602,19 +602,19 @@ public class MesReportWorkController extends BaseController {
public List<MesPrepareDetailDTO> getNewPrepareData(@RequestBody MesPrepareDetail mesPrepareDetail) {
return mesReportWorkService.getNewPrepareData(mesPrepareDetail);
}
/**删除新增的报工物料组成**/
@DeleteMapping("/deleteBomRowNow/{id}")
public AjaxResult deleteBomRowNow(@PathVariable String id) {
return toAjax(mesReportWorkService.deleteBomRowNow(id));
/**删除新增的报工物料组成**/
@DeleteMapping("/deleteBomRowNow/{id}")
public AjaxResult deleteBomRowNow(@PathVariable String id) {
return toAjax(mesReportWorkService.deleteBomRowNow(id));
}
/**删除报工数据**/
@DeleteMapping("/deleteReportNow/{reportCode}")
public AjaxResult deleteReportNow(@PathVariable String reportCode) {
return toAjax(mesReportWorkService.deleteReportNow(reportCode));
}
/**删除报工数据**/
@DeleteMapping("/deleteReportNow/{reportCode}")
public AjaxResult deleteReportNow(@PathVariable String reportCode) {
return toAjax(mesReportWorkService.deleteReportNow(reportCode));
}
//获取仓库下拉列表
//获取仓库下拉列表
@GetMapping("/getWarehouseList")
public List<MesReportWorkConsume> getWarehouseList(MesReportWorkConsume workConsume) {
List<MesReportWorkConsume> rlist = mesReportWorkService.getWarehouseList(workConsume);

@ -51,6 +51,9 @@ public class MesReportWorkConsume extends BaseEntity {
@Excel(name = "数量")
private BigDecimal quantity;
private BigDecimal quantitySplit;
private BigDecimal quantitySplitBom;
/**
*
*/
@ -391,6 +394,22 @@ public class MesReportWorkConsume extends BaseEntity {
return id;
}
public BigDecimal getQuantitySplit() {
return quantitySplit;
}
public void setQuantitySplit(BigDecimal quantitySplit) {
this.quantitySplit = quantitySplit;
}
public BigDecimal getQuantitySplitBom() {
return quantitySplitBom;
}
public void setQuantitySplitBom(BigDecimal quantitySplitBom) {
this.quantitySplitBom = quantitySplitBom;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -358,12 +358,25 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer
pTabs.setTitle("第"+i+"层工单物料损耗");
mesReportWorkConsume.setParentOrder("0");
List<MesReportWorkConsume> liblist0 = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume);
BigDecimal actPro = BigDecimal.ZERO;
BigDecimal planPro = BigDecimal.ZERO;
if(!CollectionUtils.isEmpty(liblist0)){
BigDecimal actPro = mesReportWorkConsumeMapper.getActAllProduct(mesReportWorkConsume);
actPro = mesReportWorkConsumeMapper.getActAllProduct(mesReportWorkConsume);
liblist0.get(0).setQuantityFeedback(actPro);
planPro = liblist0.get(0).getQuantitySplit();
}
for(MesReportWorkConsume lib0:liblist0){
//bom用量=单位数量/订单理论数量*报工数量
lib0.setQuantitySplitBom(new BigDecimal(lib0.getErfmg())
.divide(lib0.getQuantitySplit(),6,BigDecimal.ROUND_HALF_UP)
.multiply(actPro)
);
}
pTabs.setLibList(liblist0);
tabs.add(pTabs);
@ -375,6 +388,10 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer
sTabs.setTitle("第"+xh+"层工单物料损耗");
mesReportWorkConsume.setWorkorderCode(sonWorkOrder.getWorkorderCode());
List<MesReportWorkConsume> liblist = mesReportWorkConsumeMapper.getConsumeList(mesReportWorkConsume);
for(MesReportWorkConsume lib:liblist){
lib.setQuantitySplitBom(actPro.multiply(new BigDecimal(lib.getErfmg()))
.divide(planPro,6,BigDecimal.ROUND_HALF_UP));
}
sTabs.setLibList(liblist);
tabs.add(sTabs);

@ -98,6 +98,7 @@
left join mes_prepare mp on ow.workorder_code = mp.workorder_code
left join mes_prepare_detail mpd on mp.prepare_id = mpd.prepare_id
where ow.product_date = #{productDateStr}
and mpd.material_name not like '%白坯%' and mpd.material_name not like '%药液%'
and mpd.recoil = #{recoil} and mp.del_flag = '0' and mpd.del_flag = '0'
GROUP BY mpd.material_code,
mpd.material_name,

@ -111,7 +111,7 @@
mrwc.unit,
mrwc.create_time createTime,
mrwc.recoil,
pow.workorder_code_sap workorderCodeSap,
pow.workorder_code_sap workorderCodeSap,pow.quantity_split quantitySplit,
mrwc.attr1,
mrwc.warehouse_code warehouseCode,
mpd.quantity planQuantity,mpd.erfmg,mpd.erfme,

@ -521,4 +521,11 @@ public class QcCheckTaskIncomeController extends BaseController {
task.setCheckType(taskInfo.getCheckType());
return toAjax(qcCheckTaskIncomeService.changeTaskDetail(task));
}
//获取仓库下拉列表
@GetMapping("/getWarehouseList")
public List<QcCheckTaskIncome> getWarehouseList(QcCheckTaskIncome task) {
List<QcCheckTaskIncome> rlist = qcCheckTaskIncomeService.getWarehouseList(task);
return rlist;
}
}

@ -161,4 +161,6 @@ public interface QcCheckTaskIncomeMapper {
void deleteTaskUser(String deleteIds);
QcCheckTaskIncome getTaskInfoByRecordId(String recordId);
List<QcCheckTaskIncome> getWarehouseList();
}

@ -117,4 +117,6 @@ public interface IQcCheckTaskIncomeService {
QcCheckTaskIncome getTaskInfoByRecordId(String recordId);
int changeTaskDetail(QcCheckTaskIncome task);
List<QcCheckTaskIncome> getWarehouseList(QcCheckTaskIncome task);
}

@ -1352,6 +1352,12 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
return qcCheckTaskIncomeMapper.getOaUserId(getUserIdList);
}
@Override
@DS("#header.poolName")
public List<QcCheckTaskIncome> getWarehouseList(QcCheckTaskIncome task) {
return qcCheckTaskIncomeMapper.getWarehouseList();
}
public static void main(String args[]){
String str = "11,,22,";
System.out.println(str.split(",")[0]);

@ -396,7 +396,7 @@ public class QcCheckTaskInventoryServiceImpl implements IQcCheckTaskInventorySer
new LinkedBlockingQueue<Runnable>());
try {
dateSources.forEach(dateSource -> {
if("ds_1000".equals(dateSource.get("poolName"))){
if(!"ds_999".equals(dateSource.get("poolName"))){
logger.info("++++++++++++" + dateSource.get("poolName") + "++++库存检验开始++++++++++");
Runnable run = () -> createCCFunc(dateSource.get("poolName"));
executorService.execute(run);

@ -1276,7 +1276,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
List<String> colNameArray = null;
//数据列//cpkType,'-',q.ymdms
Map<String, QcStaticTable> mxMapData = null;
List<QcCPKInfo> cpkTypeList = cpkTypeList = qcStaticTableMapper.getCpkTypeList(qcCPKInfo);
List<QcCPKInfo> cpkTypeList = qcStaticTableMapper.getCpkTypeList(qcCPKInfo);
if("day".equals(qcCPKInfo.getTableType())){//日报
colNameArray = this.getDayOfYear(qcCPKInfo.getYmArrayStart(),qcCPKInfo.getYmArrayEnd());
mxMapData = qcStaticTableMapper.getDLDataDay(qcCPKInfo);
@ -1344,9 +1344,9 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
dmap.put("date"+index,"0");
dmap.put("cpkAvg","0");
dmap.put("lineName","");
dmap.put("checkTypeName","");
dmap.put("ruleName","");
// dmap.put("lineName","");
// dmap.put("checkTypeName","");
// dmap.put("ruleName","");
serisedata.add(0.0);
}

@ -869,6 +869,12 @@
from qc_check_task qct
where qct.record_id in('${ids}')
</select>
<select id="getWarehouseList" resultType="com.op.quality.domain.QcCheckTaskIncome">
select warehouse_code supplierCode,
warehouse_name supplierName
from base_warehouse
where active_flag = '1' and del_flag = '0'
</select>
<!--批量更新原始表-->
<update id="updateIncomeBatchList">

@ -250,98 +250,67 @@
where CONVERT(varchar(10),create_time, 120) = CONVERT(varchar(10),GETDATE(), 120)
</select>
<select id="getPutInOrder" resultType="com.op.quality.domain.QcCheckTaskIncome">
<!--
select * from (
SELECT
wms_raw_order_in_sn.user_defined5 AS orderNo,
wms_raw_order_in_sn.material_code AS materialCode,
wms_raw_order_in_sn.material_desc AS materialName,
COUNT(wms_raw_order_in_sn.amount) AS quality,
wms_raw_order_in_sn.gmt_create incomeTime,
wms_raw_order_in_sn.wh_code supplierCode,
base_warehouse.warehouse_name supplierName,
wms_raw_order_in_sn.user_defined4 unit
FROM
wms_raw_order_in_sn
LEFT JOIN base_warehouse ON base_warehouse.warehouse_code=wms_raw_order_in_sn.wh_code
WHERE
wms_raw_order_in_sn.active_flag = '1'
GROUP BY
wms_raw_order_in_sn.wh_code,
wms_raw_order_in_sn.user_defined5,
wms_raw_order_in_sn.material_code,
wms_raw_order_in_sn.material_desc,
wms_raw_order_in_sn.user_defined4,
base_warehouse.warehouse_code,
base_warehouse.warehouse_name,
wms_raw_order_in_sn.gmt_create
union all
SELECT
wms_fp_storage_news_sn.order_no,
wms_fp_storage_news_sn.product_name,
wms_fp_storage_news_sn.product_code,
SUM ( wms_fp_storage_news_sn.amount ) AS total_amount,
wms_fp_storage_news_sn.gmt_create,
wms_fp_storage_news_sn.wh_code ,
base_warehouse.warehouse_name,
wms_fp_storage_news_sn.user_defined3
FROM
wms_fp_storage_news_sn
LEFT JOIN base_warehouse ON base_warehouse.warehouse_code=wms_fp_storage_news_sn.wh_code
WHERE
wms_fp_storage_news_sn.active_flag = '1'
GROUP BY
wms_fp_storage_news_sn.order_no,
wms_fp_storage_news_sn.product_name,
wms_fp_storage_news_sn.product_code,
wms_fp_storage_news_sn.gmt_create,
wms_fp_storage_news_sn.user_defined3,
base_warehouse.warehouse_code,
base_warehouse.warehouse_name,
wms_fp_storage_news_sn.wh_code
select * from(
SELECT
wms_raw_order_in_sn.user_defined5 AS orderNo,
wms_raw_order_in_sn.material_code AS materialCode,
wms_raw_order_in_sn.material_desc AS materialName,
COUNT ( wms_raw_order_in_sn.amount ) AS quality,
wms_raw_order_in.gmt_create incomeTime,
wms_raw_order_in_sn.wh_code supplierCode,
base_warehouse.warehouse_name supplierName,
wms_raw_order_in_sn.user_defined4 unit
FROM
wms_raw_order_in_sn
LEFT JOIN base_warehouse ON base_warehouse.warehouse_code= wms_raw_order_in_sn.wh_code
LEFT JOIN wms_raw_order_in ON wms_raw_order_in.dn_no= wms_raw_order_in_sn.user_defined5 and wms_raw_order_in.material_code=wms_raw_order_in_sn.material_code
WHERE
wms_raw_order_in_sn.active_flag = '1' and wms_raw_order_in_sn.user_defined5 is not null
GROUP BY
wms_raw_order_in_sn.wh_code,
wms_raw_order_in_sn.user_defined5,
wms_raw_order_in_sn.material_code,
wms_raw_order_in_sn.material_desc,
wms_raw_order_in_sn.user_defined4,
base_warehouse.warehouse_code,
base_warehouse.warehouse_name,
wms_raw_order_in.gmt_create UNION ALL
SELECT
wms_fp_storage_news_sn.order_no,
wms_fp_storage_news_sn.product_name,
wms_fp_storage_news_sn.product_code,
SUM ( wms_fp_storage_news_sn.amount ) AS total_amount,
wms_fp_storage_news_sn.gmt_create,
wms_fp_storage_news_sn.wh_code ,
base_warehouse.warehouse_name,
wms_fp_storage_news_sn.user_defined3
FROM
wms_fp_storage_news_sn
LEFT JOIN base_warehouse ON base_warehouse.warehouse_code= wms_fp_storage_news_sn.wh_code
WHERE
wms_fp_storage_news_sn.active_flag = '1' and wms_fp_storage_news_sn.order_no is not null
GROUP BY
wms_fp_storage_news_sn.order_no,
wms_fp_storage_news_sn.product_name,
wms_fp_storage_news_sn.product_code,
wms_fp_storage_news_sn.gmt_create,
wms_fp_storage_news_sn.user_defined3,
base_warehouse.warehouse_code,
base_warehouse.warehouse_name,
wms_fp_storage_news_sn.wh_code
) t
-->
<!--select t0.orderNo,
t0.materialCode,
t0.materialName,
t0.quality,
t0.incomeTime,
t0.supplierCode,
t0.supplierName,
t0.check_Type
from (-->
select
SUBSTRING(pow.workorder_code_sap,4,10) workorderCodeSap,
t.order_no orderNo,
t.material_code materialCode,
t.material_name materialName,
t.quality quality,
t.income_time incomeTime,
t.supplier_code supplierCode,
t.supplier_name supplierName,
t.check_type check_Type,
bp.warehouse_cycle,
case when qct.create_time is not null then DATEDIFF(day, qct.create_time, GETDATE())
else DATEDIFF(day, t.income_time, GETDATE()) end days
from qc_check_task t
left join base_product_attached bp on t.material_code = concat('0000000',bp.product_code)
left join (
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
) qct on qct.order_no = t.order_no 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' and pow.del_flag = '0'
<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="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
<!--
)t0
where t0.days >= t0.warehouse_cycle -->
where 1=1
<if test="materialCode != null">and t.materialCode like concat('%',#{materialCode}, '%')</if>
<if test="materialName != null">and t.materialName like concat('%',#{materialName}, '%')</if>
<if test="supplierCode != null">and t.supplierCode like concat('%',#{supplierCode}, '%')</if>
<if test="supplierName != null ">and t.supplierName like concat('%',#{supplierName},'%')</if>
order by t.incomeTime desc,t.materialCode
</select>
<select id="getPutInOrderList" resultType="com.op.quality.domain.QcCheckTaskInventory">
<!--
select t0.orderNo,
t0.materialCode,
t0.materialName,
@ -372,7 +341,67 @@
where bp.warehouse_cycle is not null and t.check_type in('checkTypeLL','checkTypeCP') and t.del_flag = '0'
)t0
where t0.days >= t0.warehouse_cycle
-->
select t0.orderNo,
t0.materialCode,
t0.materialName,
t0.quality,
t0.incomeTime,
t0.supplierCode,
t0.supplierName,
bp.warehouse_cycle,
DATEDIFF(day, t0.incomeTime, GETDATE()) days
from (
SELECT
wms_raw_order_in_sn.user_defined5 AS orderNo,
wms_raw_order_in_sn.material_code AS materialCode,
wms_raw_order_in_sn.material_desc AS materialName,
COUNT ( wms_raw_order_in_sn.amount ) AS quality,
wms_raw_order_in.gmt_create incomeTime,
wms_raw_order_in_sn.wh_code supplierCode,
base_warehouse.warehouse_name supplierName,
wms_raw_order_in_sn.user_defined4 unit
FROM
wms_raw_order_in_sn
LEFT JOIN base_warehouse ON base_warehouse.warehouse_code= wms_raw_order_in_sn.wh_code
LEFT JOIN wms_raw_order_in ON wms_raw_order_in.dn_no= wms_raw_order_in_sn.user_defined5 and wms_raw_order_in.material_code=wms_raw_order_in_sn.material_code
WHERE
wms_raw_order_in_sn.active_flag = '1' and wms_raw_order_in_sn.user_defined5 is not null and wms_raw_order_in.gmt_create is not null
GROUP BY
wms_raw_order_in_sn.wh_code,
wms_raw_order_in_sn.user_defined5,
wms_raw_order_in_sn.material_code,
wms_raw_order_in_sn.material_desc,
wms_raw_order_in_sn.user_defined4,
base_warehouse.warehouse_code,
base_warehouse.warehouse_name,
wms_raw_order_in.gmt_create UNION ALL
SELECT
wms_fp_storage_news_sn.order_no,
wms_fp_storage_news_sn.product_name,
wms_fp_storage_news_sn.product_code,
SUM ( wms_fp_storage_news_sn.amount ) AS total_amount,
wms_fp_storage_news_sn.gmt_create,
wms_fp_storage_news_sn.wh_code ,
base_warehouse.warehouse_name,
wms_fp_storage_news_sn.user_defined3
FROM
wms_fp_storage_news_sn
LEFT JOIN base_warehouse ON base_warehouse.warehouse_code= wms_fp_storage_news_sn.wh_code
WHERE
wms_fp_storage_news_sn.active_flag = '1' and wms_fp_storage_news_sn.order_no is not null and wms_fp_storage_news_sn.gmt_create is not null
GROUP BY
wms_fp_storage_news_sn.order_no,
wms_fp_storage_news_sn.product_name,
wms_fp_storage_news_sn.product_code,
wms_fp_storage_news_sn.gmt_create,
wms_fp_storage_news_sn.user_defined3,
base_warehouse.warehouse_code,
base_warehouse.warehouse_name,
wms_fp_storage_news_sn.wh_code
)t0
left join base_product_attached bp on t0.materialCode = concat('0000000',bp.product_code)
where DATEDIFF(day, t0.incomeTime, GETDATE()) >= bp.warehouse_cycle
</select>
<insert id="insertQcCheckOaTask" parameterType="OACheckTaskDTO">

@ -0,0 +1,105 @@
package com.op.wms.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.op.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.op.wms.domain.BpProcureOrder;
import com.op.wms.service.IBpProcureOrderService;
import com.op.common.log.annotation.Log;
import com.op.common.core.web.controller.BaseController;
import com.op.common.core.web.domain.AjaxResult;
import com.op.common.log.enums.BusinessType;
import com.op.common.core.utils.poi.ExcelUtil;
import com.op.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author ruoyi
* @date 2024-11-04
*/
@RestController
@RequestMapping("/bpprocure")
public class BpProcureOrderController extends BaseController
{
@Autowired
private IBpProcureOrderService bpProcureOrderService;
/**
*
*/
@RequiresPermissions("wms:bpprocure:list")
@GetMapping("/list")
public TableDataInfo list(BpProcureOrder bpProcureOrder)
{
startPage();
List<BpProcureOrder> list = bpProcureOrderService.selectBpProcureOrderList(bpProcureOrder);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("wms:bpprocure:export")
@Log(title = "白坯原材料采购单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, BpProcureOrder bpProcureOrder)
{
List<BpProcureOrder> list = bpProcureOrderService.selectBpProcureOrderList(bpProcureOrder);
ExcelUtil<BpProcureOrder> util = new ExcelUtil<BpProcureOrder>(BpProcureOrder.class);
util.exportExcel(response, list, "白坯原材料采购单数据");
}
/**
*
*/
@RequiresPermissions("wms:bpprocure:query")
@GetMapping(value = "/{ID}")
public AjaxResult getInfo(@PathVariable("ID") String ID)
{
return success(bpProcureOrderService.selectBpProcureOrderByID(ID));
}
/**
*
*/
@RequiresPermissions("wms:bpprocure:add")
@Log(title = "白坯原材料采购单", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody BpProcureOrder bpProcureOrder)
{
return toAjax(bpProcureOrderService.insertBpProcureOrder(bpProcureOrder));
}
/**
*
*/
@RequiresPermissions("wms:bpprocure:edit")
@Log(title = "白坯原材料采购单", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody BpProcureOrder bpProcureOrder)
{
return toAjax(bpProcureOrderService.updateBpProcureOrder(bpProcureOrder));
}
/**
*
*/
@RequiresPermissions("wms:bpprocure:remove")
@Log(title = "白坯原材料采购单", businessType = BusinessType.DELETE)
@DeleteMapping("/{IDs}")
public AjaxResult remove(@PathVariable String[] IDs)
{
return toAjax(bpProcureOrderService.deleteBpProcureOrderByIDs(IDs));
}
}

@ -5,7 +5,7 @@ import javax.servlet.http.HttpServletResponse;
import com.op.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;

@ -5,7 +5,7 @@ import javax.servlet.http.HttpServletResponse;
import com.microsoft.windowsazure.exception.ServiceException;
import com.op.common.security.annotation.RequiresPermissions;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -78,7 +78,7 @@ public class BpRawMaterialInDetailController extends BaseController
@RequiresPermissions("wms:detail:add")
@Log(title = "白坯原材料入库明细", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody BpRawMaterialInDetail bpRawMaterialInDetail) throws ServiceException {
public AjaxResult add(@RequestBody BpRawMaterialInDetail bpRawMaterialInDetail){
return toAjax(bpRawMaterialInDetailService.insertBpRawMaterialInDetail(bpRawMaterialInDetail));
}

@ -138,6 +138,13 @@ public class WmsToWCSmissionController {
String result = odsProcureOrderService.ArrivalRegistration(odsProcureOrder);
return success(result);
}
@PostMapping("/ArrivalRegistrationSH")
public AjaxResult ArrivalRegistrationSH(@RequestBody OdsProcureOrder odsProcureOrder) {
// odsProcureOrderService.PurchaseOrderdeliPdas(odsProcureOrder);
// return success();
String result = odsProcureOrderService.ArrivalRegistrationSH(odsProcureOrder);
return success(result);
}
/**
* --
*/

@ -0,0 +1,219 @@
package com.op.wms.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.op.common.core.annotation.Excel;
import com.op.common.core.web.domain.BaseEntity;
/**
* bp_procure_order
*
* @author ruoyi
* @date 2024-11-04
*/
public class BpProcureOrder extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** ID */
private String ID;
/** 采购单号 */
@Excel(name = "采购单号")
private String procureCode;
/** 物料编码 */
@Excel(name = "物料编码")
private String materialCode;
/** 物料名称 */
@Excel(name = "物料名称")
private String materialName;
/** 供应商 */
@Excel(name = "供应商")
private String supplyName;
/** 计划数量 */
@Excel(name = "计划数量")
private Long planNumber;
/** 已入库数量 */
@Excel(name = "已入库数量")
private Long realityNumber;
/** 单位 */
@Excel(name = "单位")
private String unit;
/** 价格 */
@Excel(name = "价格")
private Long price;
/** 用户自定义1 */
@Excel(name = "用户自定义1")
private String attr1;
/** 用户自定义2 */
@Excel(name = "用户自定义2")
private String attr2;
/** 用户自定义3 */
@Excel(name = "用户自定义3")
private String attr3;
/** 用户自定义4 */
@Excel(name = "用户自定义4")
private String attr4;
/** 用户自定义5 */
@Excel(name = "用户自定义5")
private String attr5;
public void setID(String ID)
{
this.ID = ID;
}
public String getID()
{
return ID;
}
public void setProcureCode(String procureCode)
{
this.procureCode = procureCode;
}
public String getProcureCode()
{
return procureCode;
}
public void setMaterialCode(String materialCode)
{
this.materialCode = materialCode;
}
public String getMaterialCode()
{
return materialCode;
}
public void setMaterialName(String materialName)
{
this.materialName = materialName;
}
public String getMaterialName()
{
return materialName;
}
public void setSupplyName(String supplyName)
{
this.supplyName = supplyName;
}
public String getSupplyName()
{
return supplyName;
}
public void setPlanNumber(Long planNumber)
{
this.planNumber = planNumber;
}
public Long getPlanNumber()
{
return planNumber;
}
public void setRealityNumber(Long realityNumber)
{
this.realityNumber = realityNumber;
}
public Long getRealityNumber()
{
return realityNumber;
}
public void setUnit(String unit)
{
this.unit = unit;
}
public String getUnit()
{
return unit;
}
public void setPrice(Long price)
{
this.price = price;
}
public Long getPrice()
{
return price;
}
public void setAttr1(String attr1)
{
this.attr1 = attr1;
}
public String getAttr1()
{
return attr1;
}
public void setAttr2(String attr2)
{
this.attr2 = attr2;
}
public String getAttr2()
{
return attr2;
}
public void setAttr3(String attr3)
{
this.attr3 = attr3;
}
public String getAttr3()
{
return attr3;
}
public void setAttr4(String attr4)
{
this.attr4 = attr4;
}
public String getAttr4()
{
return attr4;
}
public void setAttr5(String attr5)
{
this.attr5 = attr5;
}
public String getAttr5()
{
return attr5;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("ID", getID())
.append("procureCode", getProcureCode())
.append("materialCode", getMaterialCode())
.append("materialName", getMaterialName())
.append("supplyName", getSupplyName())
.append("planNumber", getPlanNumber())
.append("realityNumber", getRealityNumber())
.append("unit", getUnit())
.append("price", getPrice())
.append("attr1", getAttr1())
.append("attr2", getAttr2())
.append("attr3", getAttr3())
.append("attr4", getAttr4())
.append("attr5", getAttr5())
.toString();
}
}

@ -57,7 +57,7 @@ public class BpRawMaterialInDetail extends BaseEntity
private Long amountReal;
/** 备用 */
@Excel(name = "备用")
@Excel(name = "采购单号")
private String userDefined1;
/** 备用 */

@ -191,8 +191,19 @@ public class OdsProcureOutOrder extends BaseEntity {
*/
@Excel(name = "计划数量")
private BigDecimal planNumber;
private BigDecimal sapNumber;
private BigDecimal amount;
public BigDecimal getSapNumber() {
return sapNumber;
}
public void setSapNumber(BigDecimal sapNumber) {
this.sapNumber = sapNumber;
}
public BigDecimal getAmount() {
return amount;
}

@ -0,0 +1,61 @@
package com.op.wms.mapper;
import java.util.List;
import com.op.wms.domain.BpProcureOrder;
/**
* Mapper
*
* @author ruoyi
* @date 2024-11-04
*/
public interface BpProcureOrderMapper
{
/**
*
*
* @param ID
* @return
*/
public BpProcureOrder selectBpProcureOrderByID(String ID);
/**
*
*
* @param bpProcureOrder
* @return
*/
public List<BpProcureOrder> selectBpProcureOrderList(BpProcureOrder bpProcureOrder);
/**
*
*
* @param bpProcureOrder
* @return
*/
public int insertBpProcureOrder(BpProcureOrder bpProcureOrder);
/**
*
*
* @param bpProcureOrder
* @return
*/
public int updateBpProcureOrder(BpProcureOrder bpProcureOrder);
/**
*
*
* @param ID
* @return
*/
public int deleteBpProcureOrderByID(String ID);
/**
*
*
* @param IDs
* @return
*/
public int deleteBpProcureOrderByIDs(String[] IDs);
}

@ -90,21 +90,23 @@ public interface OdsProcureOrderMapper {
*/
public List<OdsProcureOrder> selectOdsProcureOrderList1(OdsProcureOrder odsProcureOrder);
OdsProcureOrder selectOdsProcureOrderCardByUserDefined1(OdsProcureOrder odsProcureOrder);
public OdsProcureOrder selectOdsProcureOrderCardByUserDefined1(OdsProcureOrder odsProcureOrder);
List<OdsProcureOrder> getIdCardByIdList(@Param("storageId")String storageId);
public List<OdsProcureOrder> getIdCardByIdList(@Param("storageId")String storageId);
OdsProcureOrder selectOdsProcureOrderCardTL(OdsProcureOrder odsProcureOrder);
public OdsProcureOrder selectOdsProcureOrderCardTL(OdsProcureOrder odsProcureOrder);
OdsProcureOrder selectWMSOdsProcureReturnOrderByID(String id);
public OdsProcureOrder selectWMSOdsProcureReturnOrderByID(String id);
List<OdsProcureOrder> getIdCardListTH(OdsProcureOrder order);
public List<OdsProcureOrder> getIdCardListTH(OdsProcureOrder order);
void deleteBatchPallet(@Param("list")List<OdsProcureOrder> dtos0);
public void deleteBatchPallet(@Param("list")List<OdsProcureOrder> dtos0);
List<OdsProcureOrder> getIdCardListByU1(OdsProcureOrder order);
public List<OdsProcureOrder> getIdCardListByU1(OdsProcureOrder order);
String selectOdsProcureOrderUserDefined7New(@Param("formattedTEM")String formattedDate);
public String selectOdsProcureOrderUserDefined7New(@Param("formattedTEM")String formattedDate);
public List<OdsProcureOrder> selectOdsProcureOrderListSH(OdsProcureOrder order2);
}

@ -149,4 +149,6 @@ public interface OdsProcureOutOrderMapper {
void updateWMSOdsProcureReturnOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List<OdsProcureOutOrder> sapMaterialPostingList);
List<OdsProcureOutOrder> CKlist(OdsProcureOutOrder odsProcureOutOrder);
void updateWMSOdsProcureOutOrdersapById(OdsProcureOutOrder order1);
}

@ -0,0 +1,61 @@
package com.op.wms.service;
import java.util.List;
import com.op.wms.domain.BpProcureOrder;
/**
* Service
*
* @author ruoyi
* @date 2024-11-04
*/
public interface IBpProcureOrderService
{
/**
*
*
* @param ID
* @return
*/
public BpProcureOrder selectBpProcureOrderByID(String ID);
/**
*
*
* @param bpProcureOrder
* @return
*/
public List<BpProcureOrder> selectBpProcureOrderList(BpProcureOrder bpProcureOrder);
/**
*
*
* @param bpProcureOrder
* @return
*/
public int insertBpProcureOrder(BpProcureOrder bpProcureOrder);
/**
*
*
* @param bpProcureOrder
* @return
*/
public int updateBpProcureOrder(BpProcureOrder bpProcureOrder);
/**
*
*
* @param IDs
* @return
*/
public int deleteBpProcureOrderByIDs(String[] IDs);
/**
*
*
* @param ID
* @return
*/
public int deleteBpProcureOrderByID(String ID);
}

@ -36,7 +36,7 @@ public interface IBpRawMaterialInDetailService
* @param bpRawMaterialInDetail
* @return
*/
public int insertBpRawMaterialInDetail(BpRawMaterialInDetail bpRawMaterialInDetail) throws ServiceException;
public int insertBpRawMaterialInDetail(BpRawMaterialInDetail bpRawMaterialInDetail);
/**
*

@ -141,4 +141,6 @@ public interface IOdsProcureOrderService {
String NewConMaterialOutSCNew(List<OdsProcureOutOrder> orderList, List<OdsProcureOutOrder> gzList);
List<OdsProcureOutOrder> CKlist(OdsProcureOutOrder odsProcureOutOrder);
String ArrivalRegistrationSH(OdsProcureOrder odsProcureOrder);
}

@ -0,0 +1,109 @@
package com.op.wms.service.impl;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.wms.domain.BaseProduct;
import com.op.wms.mapper.BaseProductMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.op.wms.mapper.BpProcureOrderMapper;
import com.op.wms.domain.BpProcureOrder;
import com.op.wms.service.IBpProcureOrderService;
/**
* Service
*
* @author ruoyi
* @date 2024-11-04
*/
@Service
public class BpProcureOrderServiceImpl implements IBpProcureOrderService
{
@Autowired
private BpProcureOrderMapper bpProcureOrderMapper;
@Autowired
private BaseProductMapper baseProductMapper;
/**
*
*
* @param ID
* @return
*/
@Override
@DS("#header.poolName")
public BpProcureOrder selectBpProcureOrderByID(String ID)
{
return bpProcureOrderMapper.selectBpProcureOrderByID(ID);
}
/**
*
*
* @param bpProcureOrder
* @return
*/
@Override
@DS("#header.poolName")
public List<BpProcureOrder> selectBpProcureOrderList(BpProcureOrder bpProcureOrder)
{
return bpProcureOrderMapper.selectBpProcureOrderList(bpProcureOrder);
}
/**
*
*
* @param bpProcureOrder
* @return
*/
@Override
@DS("#header.poolName")
public int insertBpProcureOrder(BpProcureOrder bpProcureOrder)
{
bpProcureOrder.setID(IdUtils.fastSimpleUUID());
BaseProduct baseProduct = baseProductMapper.selectBaseProductByProductName(bpProcureOrder.getMaterialName());
bpProcureOrder.setMaterialCode(baseProduct.getProductCode());
return bpProcureOrderMapper.insertBpProcureOrder(bpProcureOrder);
}
/**
*
*
* @param bpProcureOrder
* @return
*/
@Override
@DS("#header.poolName")
public int updateBpProcureOrder(BpProcureOrder bpProcureOrder)
{
return bpProcureOrderMapper.updateBpProcureOrder(bpProcureOrder);
}
/**
*
*
* @param IDs
* @return
*/
@Override
@DS("#header.poolName")
public int deleteBpProcureOrderByIDs(String[] IDs)
{
return bpProcureOrderMapper.deleteBpProcureOrderByIDs(IDs);
}
/**
*
*
* @param ID
* @return
*/
@Override
@DS("#header.poolName")
public int deleteBpProcureOrderByID(String ID)
{
return bpProcureOrderMapper.deleteBpProcureOrderByID(ID);
}
}

@ -4,7 +4,6 @@ import java.util.Date;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.microsoft.windowsazure.exception.ServiceException;
import com.op.common.core.context.SecurityContextHolder;
import com.op.common.core.utils.uuid.IdUtils;
import com.op.common.core.web.domain.AjaxResult;
@ -72,7 +71,7 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS
*/
@Override
@DS("#header.poolName")
public int insertBpRawMaterialInDetail(BpRawMaterialInDetail bpRawMaterialInDetail) throws ServiceException {
public int insertBpRawMaterialInDetail(BpRawMaterialInDetail bpRawMaterialInDetail){
int reselt=1;
//获取当前所选工厂
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
@ -80,7 +79,6 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS
String factoryCode = request.getHeader(key.substring(8)).replace("ds_", "");
if (bpRawMaterialInDetail.getMaterialName().isEmpty() || bpRawMaterialInDetail.getAmountReal()==null){
throw new ServiceException("物料名称或数量不能为空");
}else {
bpRawMaterialInDetail.setId(IdUtils.fastSimpleUUID());
bpRawMaterialInDetail.setFactoryCode(factoryCode);
@ -90,6 +88,7 @@ public class BpRawMaterialInDetailServiceImpl implements IBpRawMaterialInDetailS
bpRawMaterialInDetail.setUnit("吨");
bpRawMaterialInDetail.setCreateBy(SecurityContextHolder.getUserName());
bpRawMaterialInDetail.setGmtCreate(new Date());
bpRawMaterialInDetail.setUserDefined1(bpRawMaterialInDetail.getUserDefined1());//采购单号
bpRawMaterialInDetailMapper.insertBpRawMaterialInDetail(bpRawMaterialInDetail);
}
//判断库存中物料是否存在

@ -1179,6 +1179,14 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}
if(!CollectionUtils.isEmpty(dtos)){
int tem= dtos.size();
int ken=1;
for (OdsProcureOrder order1:
dtos) {
order1.setUserDefined9(tem+"-"+ken);
System.out.print(tem+"-"+ken);
ken++;
}
odsProcureOrderMapper.addBatchPallet(dtos);
}
}else{
@ -1225,14 +1233,29 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}
if(!CollectionUtils.isEmpty(dtos)){
int tem= dtos.size();
int ken=1;
for (OdsProcureOrder order1:
dtos) {
order1.setUserDefined9(tem+"-"+ken);
System.out.print(tem+"-"+ken);
ken++;
}
odsProcureOrderMapper.addBatchPallet(dtos);
}
}
Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String date = dateFormat.format(currentDate);
for (OdsProcureOrder order1:
dtos ) {
String materialCode= order1.getMaterialCode();//000000040000004873
materialCode = materialCode.replaceFirst("^0{7}", ""); // 只替换开头的7个0
order1.setMaterialCode(materialCode);
order1.setUserDefined11(date);
}
String msg= dayin(dtos);
return msg;
@ -1262,13 +1285,29 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
String dateString = order1.getUserDefined11().replace("-", "");
order1.setUserDefined1(order1.getProcureCode()+"-"+order1.getUserDefined3()+"-"+order1.getUserDefined8()+"-"+dateString+"-"+order1.getUserDefined4()+"-"+order1.getCardNum());//采购单+行项目+类型+日期+板次
order1.setUserDefined10("0");
if ( order1.getUserDefined9()!=null){
String userDefined9= order1.getUserDefined9();
String[] userDefined9s= userDefined9.split("-");
String firstValue = userDefined9s[0];
String secondValueStr = userDefined9s[1]; // 获取第二个值的字符串
int secondValue = Integer.parseInt(secondValueStr); // 转换为整数
secondValue += 1; // 加1
order1.setUserDefined9(firstValue+secondValue);
}
dtos.add(order1);
odsProcureOrderMapper.addBatchPallet(dtos);
Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String date = dateFormat.format(currentDate);
for (OdsProcureOrder odsProcureOrder1:
dtos ) {
String materialCode= odsProcureOrder1.getMaterialCode();//000000040000004873
materialCode = materialCode.replaceFirst("^0{7}", ""); // 只替换开头的7个0
odsProcureOrder1.setMaterialCode(materialCode);
odsProcureOrder1.setUserDefined11(date);
}
String resylt= dayin(dtos);
// resylt
@ -1757,7 +1796,9 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
//先根据出库单获取
// * 退料的移动类型为 262
// * 领料的移动类型为 261-- and wms_ods_procure_out_order.Order_Status='3'
//我把过账状态-- and wms_ods_procure_out_order.User_Defined10!='2'去掉了
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList);
List<OdsProcureOutOrder> orderList2 = new ArrayList<>();//非反冲
List<Map<String, Object>> mapList = new ArrayList<>();//非反冲
List<SapBackflushMPQuery> sapMaterialPostingFCList = new ArrayList<>();//反冲
@ -1807,6 +1848,12 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
order.setUserDefined9(userDefined9);
order.setUserDefined10("2");//成功
for (OdsProcureOutOrder order1:
orderList2 ) {
BigDecimal sapNumber= order1.getSapNumber();
order1.setSapNumber(sapNumber.add(order1.getOutNumber()));//成功..这个是否的outNumber是用已出库减去已经过账的数量
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapById(order1);
}
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2);
for (OdsProcureOutOrder order1:
orderList2) {
@ -1840,6 +1887,12 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
order.setUserDefined9(userDefined9);
order.setUserDefined10("2");//成功
for (OdsProcureOutOrder order1:
orderList2FC ) {
BigDecimal sapNumber= order1.getSapNumber();
order1.setSapNumber(sapNumber.add(order1.getOutNumber()));//成功..这个是否的outNumber是用已出库减去已经过账的数量
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrdersapById(order1);
}
odsProcureOutOrderMapper.updateWMSOdsProcureOutOrderByids(order, orderList2FC);
for (OdsProcureOutOrder order1:
orderList2FC) {
@ -2273,6 +2326,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}else{
dtos.addAll(dtos0);
}
for (OdsProcureOrder order1:
dtos ) {
String materialCode= order1.getMaterialCode();//000000040000004873
@ -2406,9 +2460,11 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
@Override
public String NewConMaterialOutSCNew(List<OdsProcureOutOrder> orderList, List<OdsProcureOutOrder> gzList) {
//orderList标识卡这个要·注意重复过账gzList注意重复过账--就判断是否有对应标识卡未过账,如果未过账就进行过账
String result="操作成功";
String factoryCode = orderList.get(0).getFactoryCode();
DynamicDataSourceContextHolder.push("ds_" + factoryCode);
//我可以在这个循环里面
for (OdsProcureOutOrder odsProcureOutOrder :
orderList) {
//领料单,物料编号,领料单批次,物料名称,托盘号,出库数量,库位号,
@ -2424,11 +2480,12 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
BigDecimal amount= odsProcureOutOrder.getAmount();//数量
String userDefined1= odsProcureOutOrder.getUserDefined1();//单位
String userDefined2= odsProcureOutOrder.getUserDefined2();//批次
//包材明细表
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = wmsOdsMateStorageNewsSnMapper.selectWmsOdsMateStorageNewsSnByMateOrderInSnIdk(mateOrderInSnId);
//wms_raw_mission_out--保存
//ods_procure_out_order--修改
WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan();
wcsInventoryPlan.setSku(odsProcureOutOrder.getMaterialCode());
// WCSInventoryPlan wcsInventoryPlan = new WCSInventoryPlan();
// wcsInventoryPlan.setSku(odsProcureOutOrder.getMaterialCode());
// WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan);
OdsProcureOutOrder order = new OdsProcureOutOrder();
order.setProduceCode(produceCode);//领料单
@ -2446,32 +2503,34 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
order.setActive("1");
order.setCreateBy(createBy);
order.setCreateDate(new Date());
//order.setSiteCode(factoryCode);
OdsProcureOutOrder odsProcureOutOrder1=new OdsProcureOutOrder();
odsProcureOutOrder1.setProduceCode(produceCode);
odsProcureOutOrder1.setMaterialCode(materialCode);
List<OdsProcureOutOrder> odsProcureOutOrders = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrder(odsProcureOutOrder1);
//包材出库单----会有特殊的那种二次过账的单子--就看前端会不会传对应的标识卡了
OdsProcureOutOrder order1= odsProcureOutOrders.get(0);
order.setUserDefined4(order1.getUserDefined4());
//出库明细
odsProcureOutOrderMapper.insertWmsRawMissionOut(order);
//BigDecimal sapNumber =order1.getSapNumber();
BigDecimal realityNumber1 = order1.getOutNumber();//累出库数
BigDecimal realityNumber = order1.getPlanNumber();//计划
BigDecimal planNumber = amount;//本次实际数量
BigDecimal tem = realityNumber1.add(planNumber);
if (tem.compareTo(realityNumber)>= 0) {
order1.setOrderStatus("3");
order1.setOrderStatus("3");//3是满足出库数量
} else {
order1.setOrderStatus("2");
}
order1.setOutNumber(tem);
odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(order1);//订单修改
order1.setOutNumber(tem);//这样的话就可以用已经过账的数量来计算要过账的数量用出库数量减去已经过账的数量就是要过账的数量只要不为0就可以进行
// order1.setSapNumber(sapNumber.add(planNumber));//原本的过账数量
odsProcureOutOrderMapper.updateWmsOdsProcureOutOrder(order1);//订单修改--会超
//明细
// BigDecimal temk= wmsOdsMateStorageNewsSn.getAmount().subtract(amount);
wmsOdsMateStorageNewsSn.setOutNumber(amount);
wmsOdsMateStorageNewsSn.setLastModifiedBy(createBy);
wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn);//库存明细
wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSnAddoutNumber(wmsOdsMateStorageNewsSn);//库存明细--包材库存
WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews();
wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码
wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码
@ -2486,6 +2545,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
OdsProcureOutOrder order=new OdsProcureOutOrder();
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByOrderStatus(order);
//完成的。没有进行过账的
if (orderList1.size()>0){
OutboundPostingzcSAPGY(orderList1);
}
@ -2506,6 +2566,49 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
return orderList;
}
@Override
public String ArrivalRegistrationSH(OdsProcureOrder odsProcureOrder) {
String result="操作成功";
DynamicDataSourceContextHolder.push("ds_" + odsProcureOrder.getFactoryCode());
OdsProcureOrder order2=new OdsProcureOrder();
order2.setUserDefined5(odsProcureOrder.getUserDefined5());
List<OdsProcureOrder> orderList= odsProcureOrderMapper.selectOdsProcureOrderListSH(order2);
for ( OdsProcureOrder odsProcureOrder1 :
orderList) {
OdsProcureOrder order=new OdsProcureOrder();
order.setProcureCode(odsProcureOrder1.getProcureCode());
order.setActive("1");
OdsProcureOrder order1= odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder1.getID());
//查询这次收货信息----生成质检任务------- //插入检验集计划
QcCheckTaskIncomeDTO qcCheckTaskIncomeDTO = new QcCheckTaskIncomeDTO();
qcCheckTaskIncomeDTO.setCheckLoc("mjtest");
qcCheckTaskIncomeDTO.setCheckType("checkTypeLL");
qcCheckTaskIncomeDTO.setSupplierCode(order1.getSupplierCode());
String name = odsProcureOrderMapper.selectBaseSupplier(order1);
qcCheckTaskIncomeDTO.setSupplierName(name);
qcCheckTaskIncomeDTO.setOrderType("8040");//包材固定码
qcCheckTaskIncomeDTO.setUnit(order1.getUnit());
qcCheckTaskIncomeDTO.setFactoryCode(odsProcureOrder.getFactoryCode());
qcCheckTaskIncomeDTO.setQuality(odsProcureOrder1.getPlanNumber());//操作数量
qcCheckTaskIncomeDTO.setMaterialCode(order1.getMaterialCode());
qcCheckTaskIncomeDTO.setMaterialName(order1.getMaterialDesc());
// qcCheckTaskIncomeDTO.setIncomeBatchNo(order.getUserDefined2());
qcCheckTaskIncomeDTO.setOrderNo(order1.getProcureCode());
qcCheckTaskIncomeDTO.setIncomeTime(new Date());
R ruslt= remoteQualityService.createIncomeTask(qcCheckTaskIncomeDTO);
// 成功后修改--
if (ruslt.getCode()==200){//成功
odsProcureOrder1.setCzNumber(odsProcureOrder1.getPlanNumber());
odsProcureOrder1.setLastUpdateBy(odsProcureOrder.getLastUpdateBy());
odsProcureOrderMapper.updateOdsProcureOrderAddOperationNumber(odsProcureOrder1);
}else {
result="操作失败:"+ruslt.getMsg();
}
}
return result;
}
// @Override
// public String addReturnSC(List<OdsProcureOrder> orderList) {
// String factoryCode = orderList.get(0).getFactoryCode();
@ -2753,7 +2856,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
payload.put("warehousingDate", order.getUserDefined11());
payload.put("batch", order.getUserDefined7());
payload.put("bc", order.getUserDefined9());
payload.put("number", order.getPlanNumber());
payload.put("qrcode", order.getUserDefined1());
// 将当前订单的JSON对象添加到JSONArray中

@ -652,6 +652,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
String result="入库成功";
//先判断这个订单是否存在//如果存在--就修改订单。-如果不存在就添加上,
DynamicDataSourceContextHolder.push("ds_" + wmsOdsWhiteEmbryoIn.getSiteCode());
String userDefined1= wmsOdsWhiteEmbryoIn.getUserDefined1();
WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn1= wmsOdsWhiteEmbryoInMapper.selectWmsOdsWhiteEmbryoInByOrderCodeAndUserDefined1(wmsOdsWhiteEmbryoIn);
if (wmsOdsWhiteEmbryoIn1==null){
//原来不存在
@ -688,7 +689,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
wmsOdsEmStorageNewsSn.setMaterialCode(wmsOdsWhiteEmbryoIn.getMaterialCode());
wmsOdsEmStorageNewsSn.setMaterialDesc(wmsOdsWhiteEmbryoIn.getMaterialDesc());
wmsOdsEmStorageNewsSn.setSn(wmsWhiteBilletInfor.getSn());
wmsOdsEmStorageNewsSn.setBarCode(wmsWhiteBilletInfor.getBatchCode());
wmsOdsEmStorageNewsSn.setBarCode(userDefined1);
wmsOdsEmStorageNewsSn.setAmount(new BigDecimal(wmsWhiteBilletInfor.getBatchQuantity()));
wmsOdsEmStorageNewsSn.setCreateBy(wmsOdsWhiteEmbryoIn.getCreateBy());
wmsOdsEmStorageNewsSn.setGmtCreate(new Date());

@ -0,0 +1,118 @@
<?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.BpProcureOrderMapper">
<resultMap type="BpProcureOrder" id="BpProcureOrderResult">
<result property="ID" column="ID" />
<result property="procureCode" column="procure_code" />
<result property="materialCode" column="material_code" />
<result property="materialName" column="material_name" />
<result property="supplyName" column="supply_name" />
<result property="planNumber" column="plan_number" />
<result property="realityNumber" column="reality_number" />
<result property="unit" column="unit" />
<result property="price" column="price" />
<result property="attr1" column="attr1" />
<result property="attr2" column="attr2" />
<result property="attr3" column="attr3" />
<result property="attr4" column="attr4" />
<result property="attr5" column="attr5" />
</resultMap>
<sql id="selectBpProcureOrderVo">
select ID, procure_code, material_code, material_name, supply_name, plan_number, reality_number, unit, price, attr1, attr2, attr3, attr4, attr5 from bp_procure_order
</sql>
<select id="selectBpProcureOrderList" parameterType="BpProcureOrder" resultMap="BpProcureOrderResult">
<include refid="selectBpProcureOrderVo"/>
<where>
<if test="procureCode != null and procureCode != ''"> and procure_code = #{procureCode}</if>
<if test="materialCode != null and materialCode != ''"> and material_code = #{materialCode}</if>
<if test="materialName != null and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if>
<if test="supplyName != null and supplyName != ''"> and supply_name like concat('%', #{supplyName}, '%')</if>
<if test="planNumber != null "> and plan_number = #{planNumber}</if>
<if test="realityNumber != null "> and reality_number = #{realityNumber}</if>
<if test="unit != null and unit != ''"> and unit = #{unit}</if>
<if test="price != null "> and price = #{price}</if>
<if test="attr1 != null and attr1 != ''"> and attr1 = #{attr1}</if>
<if test="attr2 != null and attr2 != ''"> and attr2 = #{attr2}</if>
<if test="attr3 != null and attr3 != ''"> and attr3 = #{attr3}</if>
<if test="attr4 != null and attr4 != ''"> and attr4 = #{attr4}</if>
<if test="attr5 != null and attr5 != ''"> and attr5 = #{attr5}</if>
</where>
</select>
<select id="selectBpProcureOrderByID" parameterType="String" resultMap="BpProcureOrderResult">
<include refid="selectBpProcureOrderVo"/>
where ID = #{ID}
</select>
<insert id="insertBpProcureOrder" parameterType="BpProcureOrder">
insert into bp_procure_order
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="ID != null">ID,</if>
<if test="procureCode != null">procure_code,</if>
<if test="materialCode != null">material_code,</if>
<if test="materialName != null">material_name,</if>
<if test="supplyName != null">supply_name,</if>
<if test="planNumber != null">plan_number,</if>
<if test="realityNumber != null">reality_number,</if>
<if test="unit != null">unit,</if>
<if test="price != null">price,</if>
<if test="attr1 != null">attr1,</if>
<if test="attr2 != null">attr2,</if>
<if test="attr3 != null">attr3,</if>
<if test="attr4 != null">attr4,</if>
<if test="attr5 != null">attr5,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="ID != null">#{ID},</if>
<if test="procureCode != null">#{procureCode},</if>
<if test="materialCode != null">#{materialCode},</if>
<if test="materialName != null">#{materialName},</if>
<if test="supplyName != null">#{supplyName},</if>
<if test="planNumber != null">#{planNumber},</if>
<if test="realityNumber != null">#{realityNumber},</if>
<if test="unit != null">#{unit},</if>
<if test="price != null">#{price},</if>
<if test="attr1 != null">#{attr1},</if>
<if test="attr2 != null">#{attr2},</if>
<if test="attr3 != null">#{attr3},</if>
<if test="attr4 != null">#{attr4},</if>
<if test="attr5 != null">#{attr5},</if>
</trim>
</insert>
<update id="updateBpProcureOrder" parameterType="BpProcureOrder">
update bp_procure_order
<trim prefix="SET" suffixOverrides=",">
<if test="procureCode != null">procure_code = #{procureCode},</if>
<if test="materialCode != null">material_code = #{materialCode},</if>
<if test="materialName != null">material_name = #{materialName},</if>
<if test="supplyName != null">supply_name = #{supplyName},</if>
<if test="planNumber != null">plan_number = #{planNumber},</if>
<if test="realityNumber != null">reality_number = #{realityNumber},</if>
<if test="unit != null">unit = #{unit},</if>
<if test="price != null">price = #{price},</if>
<if test="attr1 != null">attr1 = #{attr1},</if>
<if test="attr2 != null">attr2 = #{attr2},</if>
<if test="attr3 != null">attr3 = #{attr3},</if>
<if test="attr4 != null">attr4 = #{attr4},</if>
<if test="attr5 != null">attr5 = #{attr5},</if>
</trim>
where ID = #{ID}
</update>
<delete id="deleteBpProcureOrderByID" parameterType="String">
delete from bp_procure_order where ID = #{ID}
</delete>
<delete id="deleteBpProcureOrderByIDs" parameterType="String">
delete from bp_procure_order where ID in
<foreach item="ID" collection="array" open="(" separator="," close=")">
#{ID}
</foreach>
</delete>
</mapper>

@ -563,6 +563,7 @@
card.User_Defined1 sn,
card.Plan_Number ,
card.User_Defined10,
card.User_Defined9,
card.User_Defined1,
order_TME.User_Defined5
FROM
@ -803,5 +804,12 @@
WHERE
LEFT(User_Defined7, 6) = #{formattedTEM}
</select>
<select id="selectOdsProcureOrderListSH" parameterType="OdsProcureOrder" resultMap="OdsProcureOrderResult">
<include refid="selectOdsProcureOrderVo"/>
where User_Defined5= #{userDefined5}
AND (Plan_Number-COALESCE ( Operation_Number, 0 ))>0
order by Create_Date desc
</select>
</mapper>

@ -43,6 +43,7 @@
<result property="workorderCode" column="workorderCode"/>
<result property="needDate" column="needDate"/>
<result property="returnNumber" column="Return_Number"/>
<result property="sapNumber" column="Sap_Number"/>
</resultMap>
<sql id="pagination_tail">
limit #{page.pageOffset} , #{page.rows}
@ -451,7 +452,10 @@
<update id="updateWMSOdsProcureOutOrderByids">
update wms_ods_procure_out_order
set User_Defined10 = #{order.userDefined10},
User_Defined9 = #{order.userDefined9},
User_Defined9 = CASE
WHEN User_Defined9 IS NULL OR User_Defined9 = '' THEN #{order.userDefined9}
ELSE CONCAT(User_Defined9, ',', #{order.userDefined9})
END,
User_Defined11 = #{order.userDefined11}
where ID in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
@ -805,7 +809,7 @@
wms_ods_procure_out_order.Plan_Date,
wms_ods_procure_out_order.Plan_Number,
wms_ods_procure_out_order.Unit,
COALESCE ( wms_ods_procure_out_order.Out_Number, 0 ) AS Out_Number,
COALESCE ( wms_ods_procure_out_order.Out_Number, 0 ) - COALESCE ( wms_ods_procure_out_order.Sap_Number, 0 ) AS Out_Number ,
wms_raw_mission_out.user_defined2 Loc_Code,
wms_ods_procure_out_order.Loc_Desc,
wms_ods_procure_out_order.Production_Line_Desc,
@ -830,6 +834,7 @@
wms_ods_procure_out_order.Last_Update_Date,
wms_ods_procure_out_order.Active,
wms_ods_procure_out_order.Enterprise_Id,
COALESCE ( wms_ods_procure_out_order.Sap_Number, 0 ) AS Sap_Number,
wms_ods_procure_out_order.Enterprise_Code
FROM
wms_ods_procure_out_order
@ -839,7 +844,7 @@
<foreach item="odsProcureOutOrder" collection="list" open="(" separator="," close=")">
#{odsProcureOutOrder.ID}
</foreach>
and wms_ods_procure_out_order.User_Defined10!='2'
AND (COALESCE ( wms_ods_procure_out_order.Out_Number, 0 ) - COALESCE ( wms_ods_procure_out_order.Sap_Number, 0 ))>0
</select>
<select id="selectWmsOdsProcureReturnOrderByID" resultMap="OdsProcureOutOrderResult">
SELECT DISTINCT
@ -922,6 +927,7 @@
Last_Update_Date,
Active,
Enterprise_Id,
COALESCE ( Sap_Number, 0 ) AS Sap_Number,
Enterprise_Code
FROM
wms_ods_procure_out_order
@ -1073,6 +1079,7 @@
<if test="Active != null">Active = #{Active},</if>
<if test="enterpriseId != null">Enterprise_Id = #{enterpriseId},</if>
<if test="enterpriseCode != null">Enterprise_Code = #{enterpriseCode},</if>
<if test="sapNumber != null">Sap_Number = #{sapNumber},</if>
</trim>
where ID = #{ID}
</update>
@ -1308,7 +1315,8 @@
</select>
<select id="selectMesReportWorkConsumeFC" resultMap="OdsProcureOutOrderResult">
select
sum(mco.quantity) Plan_Number
ISNULL(sum(mco.quantity), 0) AS Plan_Number
from pro_order_workorder ow
left join mes_prepare mp on ow.workorder_code = mp.workorder_code
left join mes_prepare_detail mpd on mp.prepare_id = mpd.prepare_id
@ -1508,4 +1516,9 @@
</where>
ORDER BY gmt_create DESC
</select>
<update id="updateWMSOdsProcureOutOrdersapById" >
update wms_ods_procure_out_order
set Sap_Number = #{order.sapNumber}
where ID = #{order.ID}
</update>
</mapper>

Loading…
Cancel
Save