add:刻字工序
This commit is contained in:
@@ -233,11 +233,9 @@ IF 输入.flag = "10"
|
|||||||
FROM
|
FROM
|
||||||
mps_bd_produceshiftorder shiftorder
|
mps_bd_produceshiftorder shiftorder
|
||||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||||
LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87'
|
|
||||||
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
||||||
WHERE
|
WHERE
|
||||||
shiftorder.is_delete='0'
|
shiftorder.is_delete='0'
|
||||||
and workprocedure.workprocedure_code IN ( '07', '06', '02' )
|
|
||||||
OPTION 输入.produce_date <> ""
|
OPTION 输入.produce_date <> ""
|
||||||
shiftorder.produce_date = 输入.produce_date
|
shiftorder.produce_date = 输入.produce_date
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
@@ -294,11 +292,9 @@ IF 输入.flag = "12"
|
|||||||
FROM
|
FROM
|
||||||
mps_bd_produceshiftorder shiftorder
|
mps_bd_produceshiftorder shiftorder
|
||||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||||
LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87'
|
|
||||||
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
||||||
WHERE
|
WHERE
|
||||||
shiftorder.is_delete='0'
|
shiftorder.is_delete='0'
|
||||||
and workprocedure.workprocedure_code IN ( '07', '06', '02' )
|
|
||||||
OPTION 输入.end_produce_date <> ""
|
OPTION 输入.end_produce_date <> ""
|
||||||
shiftorder.produce_date <= 输入.end_produce_date
|
shiftorder.produce_date <= 输入.end_produce_date
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
@@ -323,11 +319,9 @@ IF 输入.flag = "13"
|
|||||||
FROM
|
FROM
|
||||||
mps_bd_produceshiftorder shiftorder
|
mps_bd_produceshiftorder shiftorder
|
||||||
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
LEFT JOIN pdm_bi_workprocedure workprocedure ON shiftorder.workprocedure_id = workprocedure.workprocedure_id
|
||||||
LEFT JOIN sys_dict_detail sys ON sys.VALUE= workprocedure.worksection_type_scode AND sys.dict_id = '87'
|
|
||||||
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
left join md_me_materialbase material on material.material_id =shiftorder.material_id
|
||||||
WHERE
|
WHERE
|
||||||
shiftorder.is_delete='0'
|
shiftorder.is_delete='0'
|
||||||
and workprocedure.workprocedure_code IN ( '07', '06', '02' )
|
|
||||||
OPTION 输入.end_produce_date <> ""
|
OPTION 输入.end_produce_date <> ""
|
||||||
shiftorder.produce_date <= 输入.end_produce_date
|
shiftorder.produce_date <= 输入.end_produce_date
|
||||||
ENDOPTION
|
ENDOPTION
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -25,4 +26,6 @@ public interface IMdMeMaterialbaseService extends IService<MdMeMaterialbase> {
|
|||||||
|
|
||||||
List getPdaBcpGetMaterial(PdaQuery whereJson, PageQuery pageQuery);
|
List getPdaBcpGetMaterial(PdaQuery whereJson, PageQuery pageQuery);
|
||||||
|
|
||||||
|
List<Map> pageQuery(Map whereJson);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,4 +21,6 @@ import java.util.Map;
|
|||||||
public interface MdMeMaterialbaseMapper extends BaseMapper<MdMeMaterialbase> {
|
public interface MdMeMaterialbaseMapper extends BaseMapper<MdMeMaterialbase> {
|
||||||
|
|
||||||
List<Map> getPdaBcpGetMaterial(@Param("query") PdaQuery map, @Param("pageQuery") PageQuery pageQuery);
|
List<Map> getPdaBcpGetMaterial(@Param("query") PdaQuery map, @Param("pageQuery") PageQuery pageQuery);
|
||||||
|
|
||||||
|
List<Map> queryAll(Map whereJson);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,4 +20,36 @@
|
|||||||
order by mater.material_code ASC
|
order by mater.material_code ASC
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
<select id="queryAll" resultType="java.util.Map">
|
||||||
|
SELECT
|
||||||
|
mb.*,
|
||||||
|
class.class_code,
|
||||||
|
class.class_name,
|
||||||
|
unit_name, '50' as standard_weight,
|
||||||
|
unit_name as base_unit_name,
|
||||||
|
class2.class_code as product_series_code,
|
||||||
|
class2.class_name as product_series_name
|
||||||
|
FROM
|
||||||
|
md_me_materialbase mb
|
||||||
|
LEFT JOIN MD_PB_ClassStandard class ON class.class_id = mb.material_type_id
|
||||||
|
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = mb.base_unit_id
|
||||||
|
left join MD_PB_ClassStandard class2 on class2.class_id =mb.product_series
|
||||||
|
WHERE mb.is_delete = '0'
|
||||||
|
<if test="idssql != null and idssql != ''">
|
||||||
|
and ${idssql}
|
||||||
|
</if>
|
||||||
|
<if test="search != null and search != ''">
|
||||||
|
and (
|
||||||
|
mb.material_code like '%${search}%'
|
||||||
|
OR
|
||||||
|
mb.material_name like '%${search}%'
|
||||||
|
)
|
||||||
|
</if>
|
||||||
|
<if test="class_code != null and class_code != ''">
|
||||||
|
and class.class_code like '%${class_code}%'
|
||||||
|
</if>
|
||||||
|
<if test="classIds != null and classIds != ''">
|
||||||
|
and class.class_id in ${classIds}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -59,6 +59,11 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
|
|||||||
return this.baseMapper.getPdaBcpGetMaterial(whereJson,pageQuery);
|
return this.baseMapper.getPdaBcpGetMaterial(whereJson,pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Map> pageQuery(Map whereJson) {
|
||||||
|
return this.baseMapper.queryAll(whereJson);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException {
|
public void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||||
InputStream inputStream = file.getInputStream();
|
InputStream inputStream = file.getInputStream();
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import io.swagger.annotations.ApiOperation;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.common.utils.RedissonUtils;
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.wms.masterdata_manage.备份master.constant.MaterOptTypeEnum;
|
import org.nl.wms.masterdata_manage.备份master.constant.MaterOptTypeEnum;
|
||||||
import org.nl.wms.masterdata_manage.备份master.service.MaterialbaseService;
|
import org.nl.wms.masterdata_manage.备份master.service.MaterialbaseService;
|
||||||
@@ -39,9 +40,7 @@ public class MaterialbaseController {
|
|||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@Log("查询物料")
|
@Log("查询物料")
|
||||||
//("查询物料")
|
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
|
||||||
//@PreAuthorize("@el.check('Materialbase:list')")
|
|
||||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
|
||||||
return new ResponseEntity<>(materialBaseService.queryAll(whereJson, page), HttpStatus.OK);
|
return new ResponseEntity<>(materialBaseService.queryAll(whereJson, page), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.nl.wms.masterdata_manage.备份master.service;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.wms.masterdata_manage.备份master.service.dto.MaterialbaseDto;
|
import org.nl.wms.masterdata_manage.备份master.service.dto.MaterialbaseDto;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
@@ -27,7 +28,7 @@ public interface MaterialbaseService {
|
|||||||
* @param page 分页参数
|
* @param page 分页参数
|
||||||
* @return Map<String, Object>
|
* @return Map<String, Object>
|
||||||
*/
|
*/
|
||||||
Map<String, Object> queryAll(Map whereJson, Pageable page);
|
Object queryAll(Map whereJson, PageQuery page);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询所有数据不分页
|
* 查询所有数据不分页
|
||||||
|
|||||||
@@ -9,9 +9,13 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.github.pagehelper.Page;
|
||||||
|
import com.github.pagehelper.PageHelper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.json.XML;
|
import org.json.XML;
|
||||||
|
import org.nl.common.TableDataInfo;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.common.utils.WebServiceUtil;
|
import org.nl.common.utils.WebServiceUtil;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
@@ -68,7 +72,7 @@ public class MaterialbaseServiceImpl implements MaterialbaseService{
|
|||||||
private IMdPbMeasureunitService mdPbMeasureunitService;
|
private IMdPbMeasureunitService mdPbMeasureunitService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String,Object> queryAll(Map whereJson, Pageable page) {
|
public Object queryAll(Map whereJson, PageQuery page) {
|
||||||
String search = MapUtil.getStr(whereJson, "search");
|
String search = MapUtil.getStr(whereJson, "search");
|
||||||
//物料限制的时候使用,初始化页面
|
//物料限制的时候使用,初始化页面
|
||||||
String class_idStr = MapUtil.getStr(whereJson, "class_idStr");
|
String class_idStr = MapUtil.getStr(whereJson, "class_idStr");
|
||||||
@@ -112,11 +116,11 @@ public class MaterialbaseServiceImpl implements MaterialbaseService{
|
|||||||
where.append(")");
|
where.append(")");
|
||||||
map.put("idssql", where.toString());
|
map.put("idssql", where.toString());
|
||||||
}
|
}
|
||||||
else{
|
Page<Object> pageResult = PageHelper.startPage(page.getPage()+1, page.getSize());
|
||||||
map.put("idssql", "1=1");
|
List<Map> maps = materialbaseService.pageQuery(map);
|
||||||
}
|
TableDataInfo build = TableDataInfo.build(maps);
|
||||||
JSONObject jo = WQL.getWO("QMD_ME_MATERIAL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "material_id");
|
build.setTotalElements(pageResult.getTotal());
|
||||||
return jo;
|
return build;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -145,7 +145,6 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
MpsSaleOrder mpsSaleOrder = new MpsSaleOrder();
|
MpsSaleOrder mpsSaleOrder = new MpsSaleOrder();
|
||||||
mpsSaleOrder.setSale_id(IdUtil.getStringId());
|
|
||||||
mpsSaleOrder.setSale_type("01");
|
mpsSaleOrder.setSale_type("01");
|
||||||
mpsSaleOrder.setStatus("10");
|
mpsSaleOrder.setStatus("10");
|
||||||
mpsSaleOrder.setCreate_time(DateUtil.now());
|
mpsSaleOrder.setCreate_time(DateUtil.now());
|
||||||
@@ -157,11 +156,6 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
|
|||||||
mpsSaleOrder.setCreate_mode("03");
|
mpsSaleOrder.setCreate_mode("03");
|
||||||
for(int j = 0; j < list.size(); j++) {
|
for(int j = 0; j < list.size(); j++) {
|
||||||
String col = null == list.get(j) ? "" : String.valueOf(list.get(j));
|
String col = null == list.get(j) ? "" : String.valueOf(list.get(j));
|
||||||
//存在订单编号,忽略不导入
|
|
||||||
// List<Map> saleCode = baseMapper.queryAll(new OrderQuery());
|
|
||||||
// if(saleCode.stream().anyMatch(m -> col.equals(m.get("sale_code")) && "10".equals(m.get("status")))) {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
if(j == 0) {
|
if(j == 0) {
|
||||||
if(StringUtils.isBlank(col)) {
|
if(StringUtils.isBlank(col)) {
|
||||||
throw new BadRequestException("销售单号不能为空");
|
throw new BadRequestException("销售单号不能为空");
|
||||||
@@ -169,61 +163,45 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
|
|||||||
mpsSaleOrder.setSale_code(col);
|
mpsSaleOrder.setSale_code(col);
|
||||||
}
|
}
|
||||||
if(j == 1) {
|
if(j == 1) {
|
||||||
if(StringUtils.isBlank(col)) {
|
|
||||||
throw new BadRequestException("合同号不能为空");
|
|
||||||
}
|
|
||||||
mpsSaleOrder.setContract_code(col);
|
mpsSaleOrder.setContract_code(col);
|
||||||
}
|
}
|
||||||
if(j == 2) {
|
if(j == 2) {
|
||||||
if(StringUtils.isBlank(col)) {
|
if(StringUtils.isBlank(col)) {
|
||||||
throw new BadRequestException("物料编号不能为空");
|
throw new BadRequestException("规格名称不能为空");
|
||||||
}
|
}
|
||||||
MdMeMaterialbase meMaterialBases = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>().eq("material_code", col));
|
List<MdMeMaterialbase> meMaterialBases = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().eq("material_spec", col));
|
||||||
if(meMaterialBases == null) {
|
if(CollectionUtils.isEmpty(meMaterialBases)) {
|
||||||
errorMap.put("第" + i + "行" + col, "物料编号对应物料信息不存在");
|
errorMap.put("第" + i + "行" + col, "物料规格对应物料信息不存在");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
mpsSaleOrder.setMaterial_id(meMaterialBases.getMaterial_id());
|
Optional<MdMeMaterialbase> first = meMaterialBases.stream().findFirst();
|
||||||
// 物料编码
|
first.ifPresent(mdMeMaterialbase ->
|
||||||
mpsSaleOrder.setMaterial_code(meMaterialBases.getMaterial_code());
|
{
|
||||||
// 计量单位
|
// 物料id
|
||||||
mpsSaleOrder.setQty_unit_id(meMaterialBases.getBase_unit_id());
|
mpsSaleOrder.setMaterial_id(mdMeMaterialbase.getMaterial_id());
|
||||||
mpsSaleOrder.setMaterial_spec(meMaterialBases.getMaterial_spec());
|
// 物料编码
|
||||||
|
mpsSaleOrder.setMaterial_code(mdMeMaterialbase.getMaterial_code());
|
||||||
|
// 计量单位
|
||||||
|
mpsSaleOrder.setQty_unit_id(mdMeMaterialbase.getBase_unit_id());
|
||||||
|
mpsSaleOrder.setMaterial_spec(mdMeMaterialbase.getMaterial_spec());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(j == 3) {
|
if(j == 3) {
|
||||||
if(StringUtils.isBlank(col)) {
|
|
||||||
throw new BadRequestException("物料规格不能为空");
|
|
||||||
}
|
|
||||||
//规格校验?
|
|
||||||
}
|
|
||||||
if(j == 4) {
|
|
||||||
if(StringUtils.isBlank(col)) {
|
if(StringUtils.isBlank(col)) {
|
||||||
throw new BadRequestException("工段信息不能为空");
|
throw new BadRequestException("工段信息不能为空");
|
||||||
}
|
}
|
||||||
//智能一线,智能三线
|
//智能一线,智能三线
|
||||||
mpsSaleOrder.setProduct_area(col.contains("三") || col.contains("3") ? "A3" : "A1");
|
mpsSaleOrder.setProduct_area(col.contains("三") || col.contains("3") ? "A3" : "A1");
|
||||||
}
|
}
|
||||||
if(j == 5) {
|
if(j == 4) {
|
||||||
if(StringUtils.isBlank(col)) {
|
if(StringUtils.isBlank(col)) {
|
||||||
throw new BadRequestException("销售数量不能为空");
|
throw new BadRequestException("销售数量不能为空");
|
||||||
}
|
}
|
||||||
BigDecimal saleQty = new BigDecimal(NumberUtils.isNumber(col) ? NumberUtils.toDouble(col) : 0);
|
BigDecimal saleQty = new BigDecimal(NumberUtils.isNumber(col) ? NumberUtils.toDouble(col) : 0);
|
||||||
mpsSaleOrder.setSale_qty(saleQty);
|
mpsSaleOrder.setSale_qty(saleQty);
|
||||||
}
|
}
|
||||||
if(j == 6) {
|
if(j == 5) {
|
||||||
//计量单位
|
|
||||||
if(StringUtils.isNotBlank(col)) {
|
|
||||||
mpsSaleOrder.setQty_unit_name(col);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// if(j == 7) {
|
|
||||||
// //最早开始时间(下料时间)
|
|
||||||
// if(StringUtils.isNotBlank(col)) {
|
|
||||||
// mpsSaleOrder.setEarly_start_time(DateUtil.format(DateUtil.parse(col), "yyyy-MM-dd"));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
if(j == 8) {
|
|
||||||
if(StringUtils.isBlank(col)) {
|
if(StringUtils.isBlank(col)) {
|
||||||
throw new BadRequestException("订单交期不能为空");
|
throw new BadRequestException("订单交期不能为空");
|
||||||
}
|
}
|
||||||
@@ -242,6 +220,23 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
|
|||||||
mpsSaleOrder.setPlandeliver_date(String.valueOf(DateUtil.parse(col, "yyyy-MM-dd")));
|
mpsSaleOrder.setPlandeliver_date(String.valueOf(DateUtil.parse(col, "yyyy-MM-dd")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// if(j == 6) {
|
||||||
|
// if(StringUtils.isNotBlank(col)) {
|
||||||
|
// mpsSaleOrder.setRawmaterial_name(col);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if(j == 7) {
|
||||||
|
// if(StringUtils.isNotBlank(col)) {
|
||||||
|
// BigDecimal rateQty = BigDecimal.valueOf(NumberUtils.isNumber(col) ? NumberUtils.toDouble(col) : 0);
|
||||||
|
// mpsSaleOrder.setRate_qty(rateQty);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if(j == 8) {
|
||||||
|
// if(StringUtils.isNotBlank(col)) {
|
||||||
|
// BigDecimal canuseQty = BigDecimal.valueOf(NumberUtils.isNumber(col) ? NumberUtils.toDouble(col) : 0);
|
||||||
|
// mpsSaleOrder.setCanuse_qty(canuseQty);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
// 设置明细号
|
// 设置明细号
|
||||||
String orderCode = mpsSaleOrder.getSale_code();
|
String orderCode = mpsSaleOrder.getSale_code();
|
||||||
@@ -280,7 +275,6 @@ public class MpsSaleOrderServiceImpl extends ServiceImpl<MpsSaleOrderMapper,MpsS
|
|||||||
throw new BadRequestException(JSON.toJSONString(errorMap));
|
throw new BadRequestException(JSON.toJSONString(errorMap));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.saveBatch(data);
|
this.saveBatch(data);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -161,15 +161,8 @@ public class PdaWashController {
|
|||||||
throw new BadRequestException("选择的储料仓存在正在执行的任务:"+tasks.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
throw new BadRequestException("选择的储料仓存在正在执行的任务:"+tasks.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||||
}
|
}
|
||||||
List<PdmBiDevice> list = iDeviceService.list(new QueryWrapper<PdmBiDevice>()
|
List<PdmBiDevice> list = iDeviceService.list(new QueryWrapper<PdmBiDevice>()
|
||||||
.eq("workprocedure_id", "1535144552481034240").eq("is_used",true)
|
.eq("workprocedure_id", "1535144552481034240")
|
||||||
.in("device_code", devices));
|
.in("device_code", devices));
|
||||||
if (list.size()< devices.length){
|
|
||||||
String unUsed = Arrays.stream(devices).filter(a ->
|
|
||||||
list.stream().map(PdmBiDevice::getDevice_code).
|
|
||||||
collect(Collectors.toList()).contains(a))
|
|
||||||
.collect(Collectors.joining(","));
|
|
||||||
throw new BadRequestException("选择的储料仓"+unUsed+"存在清洗未完成的任务");
|
|
||||||
}
|
|
||||||
Set<String> collect = list.stream().map(PdmBiDevice::getMaterial_id).collect(Collectors.toSet());
|
Set<String> collect = list.stream().map(PdmBiDevice::getMaterial_id).collect(Collectors.toSet());
|
||||||
|
|
||||||
if (collect.size()>1){
|
if (collect.size()>1){
|
||||||
@@ -270,14 +263,14 @@ public class PdaWashController {
|
|||||||
@Log("确认下料")
|
@Log("确认下料")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> washFinish(@RequestBody JSONObject query) {
|
public ResponseEntity<Object> washFinish(@RequestBody JSONObject query) {
|
||||||
washSendMaterialTask.createTask(query);
|
RedissonUtils.lock(()->{washSendMaterialTask.createTask(query);},"washFinish",null);
|
||||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||||
}
|
}
|
||||||
@PostMapping("/washQzFinish")
|
@PostMapping("/washQzFinish")
|
||||||
@Log("强制下料")
|
@Log("强制下料")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> washQzFinish(@RequestBody JSONObject query) {
|
public ResponseEntity<Object> washQzFinish(@RequestBody JSONObject query) {
|
||||||
washSendMaterialQZTask.createTask(query);
|
RedissonUtils.lock(()->{washSendMaterialQZTask.createTask(query);},"washQzFinish",null);
|
||||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.api.R;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.TableDataInfo;
|
import org.nl.common.TableDataInfo;
|
||||||
@@ -19,6 +20,9 @@ import org.nl.common.enums.StatusEnum;
|
|||||||
import org.nl.common.utils.RedissonUtils;
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||||
|
import org.nl.wms.scheduler_manage.service.extendtask.Engrave.EngraveCallService;
|
||||||
import org.nl.wms.scheduler_manage.service.extendtask.plotter.PlotterCallEmptyTask;
|
import org.nl.wms.scheduler_manage.service.extendtask.plotter.PlotterCallEmptyTask;
|
||||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||||
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint;
|
||||||
@@ -27,12 +31,17 @@ import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@Api(tags = "一体机刻字服务")
|
@Api(tags = "一体机刻字服务")
|
||||||
@@ -49,6 +58,10 @@ public class TmpKZController {
|
|||||||
private PlotterCallEmptyTask plotterCallEmptyTask;
|
private PlotterCallEmptyTask plotterCallEmptyTask;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseTaskService taskService;
|
private ISchBaseTaskService taskService;
|
||||||
|
@Autowired
|
||||||
|
private EngraveCallService engraveScheduleService;
|
||||||
|
@Autowired
|
||||||
|
private IMdMeMaterialbaseService materialbaseService;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param param
|
* @param param
|
||||||
@@ -139,5 +152,36 @@ public class TmpKZController {
|
|||||||
},"刻字上料送载具",null);
|
},"刻字上料送载具",null);
|
||||||
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
@PostMapping("/kz/submitkz")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> submitkz(@RequestBody JSONArray param){
|
||||||
|
engraveScheduleService.createTask(param);
|
||||||
|
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/kz/kzTasks")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> kzTasks(@RequestBody JSONObject param){
|
||||||
|
List<Map<String, Object>> list = taskService.listMaps(new QueryWrapper<SchBaseTask>()
|
||||||
|
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||||
|
.isNotNull("task_step")
|
||||||
|
.eq("product_area", param.getString("product_area"))
|
||||||
|
.nested(a ->
|
||||||
|
a.eq("task_type", AcsTaskEnum.TASK_STRUCT_OUT.getCode())
|
||||||
|
.or()
|
||||||
|
.eq("task_type", AcsTaskEnum.TASK_Engrave_CALL.getCode()))
|
||||||
|
);
|
||||||
|
Set<String> materials = list.stream().map(a->String.valueOf(a.get("material_id"))).collect(Collectors.toSet());
|
||||||
|
if (!CollectionUtils.isEmpty(materials)){
|
||||||
|
Map<String, MdMeMaterialbase> materialMap = materialbaseService.listByIds(materials)
|
||||||
|
.stream().collect(HashMap::new, (k, v) -> k.put(v.getMaterial_id(), v), HashMap::putAll);
|
||||||
|
for (Map<String, Object> map : list) {
|
||||||
|
map.put("material_spec",materialMap.get(map.get("material_id")).getMaterial_spec());
|
||||||
|
map.put("material_code",materialMap.get(map.get("material_id")).getMaterial_code());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.nl.common.TableDataInfo;
|
import org.nl.common.TableDataInfo;
|
||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.common.enums.WorkerOrderEnum;
|
||||||
import org.nl.common.utils.RedissonUtils;
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
|
import org.nl.wms.product_manage.service.device.IPdmBiDeviceService;
|
||||||
@@ -62,6 +63,15 @@ public class PdmProduceWorkorderController {
|
|||||||
return new ResponseEntity<>(iPdmProduceWorkorderService.queryAll(query, page), HttpStatus.OK);
|
return new ResponseEntity<>(iPdmProduceWorkorderService.queryAll(query, page), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
@Log("查询工单管理")
|
||||||
|
//("查询工单管理")
|
||||||
|
public ResponseEntity<Object> queryPad(@RequestBody WorkorderQuery query) {
|
||||||
|
PageQuery page = new PageQuery();page.setPage(0);page.setSize(99);
|
||||||
|
query.setOrder_status(WorkerOrderEnum.PRODUCTING.getCode());
|
||||||
|
return new ResponseEntity<>(iPdmProduceWorkorderService.queryAll(query, page), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Log("新增工单管理")
|
@Log("新增工单管理")
|
||||||
//("新增工单管理")
|
//("新增工单管理")
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
and find_in_set(ShiftOrder.workorder_status, #{query.order_status})
|
and find_in_set(ShiftOrder.workorder_status, #{query.order_status})
|
||||||
</if>
|
</if>
|
||||||
<if test="query.device_code != null and query.device_code != ''">
|
<if test="query.device_code != null and query.device_code != ''">
|
||||||
and ShiftOrder.device_code = #{query.device_code}
|
and ShiftOrder.device_code like '%${query.device_code}%'
|
||||||
</if>
|
</if>
|
||||||
<if test="query.shift_type_scode != null and query.shift_type_scode != ''">
|
<if test="query.shift_type_scode != null and query.shift_type_scode != ''">
|
||||||
and ShiftOrder.shift_type_scode = #{query.shift_type_scode}
|
and ShiftOrder.shift_type_scode = #{query.shift_type_scode}
|
||||||
|
|||||||
@@ -44,6 +44,8 @@ import org.nl.wms.product_manage.service.workorder.dto.ReportQuery;
|
|||||||
import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery;
|
import org.nl.wms.product_manage.service.workorder.dto.WorkorderQuery;
|
||||||
import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService;
|
import org.nl.wms.product_manage.service.workprocedure.IPdmBiWorkprocedureService;
|
||||||
import org.nl.wms.product_manage.service.workprocedure.dao.PdmBiWorkprocedure;
|
import org.nl.wms.product_manage.service.workprocedure.dao.PdmBiWorkprocedure;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
import org.nl.wms.system_manage.service.user.ISysUserService;
|
import org.nl.wms.system_manage.service.user.ISysUserService;
|
||||||
import org.nl.wms.system_manage.service.user.dao.SysUser;
|
import org.nl.wms.system_manage.service.user.dao.SysUser;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -92,6 +94,8 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
|||||||
private IPdmBiWorkprocedureService workprocedureService;
|
private IPdmBiWorkprocedureService workprocedureService;
|
||||||
@Resource
|
@Resource
|
||||||
private IPdmProduceWorkorderrecordService reportRecordService;
|
private IPdmProduceWorkorderrecordService reportRecordService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object queryAll(WorkorderQuery query, PageQuery pageQuery) {
|
public Object queryAll(WorkorderQuery query, PageQuery pageQuery) {
|
||||||
@@ -224,13 +228,9 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
|||||||
//强制完成时修改工单状态
|
//强制完成时修改工单状态
|
||||||
String workorder_id = param.getJSONObject("row").getString("workorder_id");
|
String workorder_id = param.getJSONObject("row").getString("workorder_id");
|
||||||
PdmProduceWorkorder pdmProduceWorkorder = this.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
PdmProduceWorkorder pdmProduceWorkorder = this.getOne(new QueryWrapper<PdmProduceWorkorder>()
|
||||||
.nested(i -> i
|
|
||||||
.isNull("workorder_code").or()
|
|
||||||
.eq("workorder_code", "").or()
|
|
||||||
.eq("workorder_code", "0"))
|
|
||||||
.eq("workorder_id", workorder_id));
|
.eq("workorder_id", workorder_id));
|
||||||
//aps排产完成的工单,生成工单编号再下发
|
//aps排产完成的工单,生成工单编号再下发
|
||||||
if(null!=pdmProduceWorkorder) {
|
if(StringUtils.isEmpty(pdmProduceWorkorder.getWorkorder_code()) || pdmProduceWorkorder.getWorkorder_code().equals("0")) {
|
||||||
this.update(new UpdateWrapper<PdmProduceWorkorder>()
|
this.update(new UpdateWrapper<PdmProduceWorkorder>()
|
||||||
.eq("workorder_id", pdmProduceWorkorder.getWorkorder_id())
|
.eq("workorder_id", pdmProduceWorkorder.getWorkorder_id())
|
||||||
.set("workorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")));
|
.set("workorder_code", CodeUtil.getNewCode("PDM_SHIFTORDER")));
|
||||||
@@ -247,6 +247,11 @@ public class IPdmProduceWorkorderServiceImpl extends ServiceImpl<PdmProduceWorko
|
|||||||
map.put("workorder_id", workorder_id);
|
map.put("workorder_id", workorder_id);
|
||||||
map.put("type", WorkerOrderEnum.COMPLETE.getCode());
|
map.put("type", WorkerOrderEnum.COMPLETE.getCode());
|
||||||
array.add(map);
|
array.add(map);
|
||||||
|
//强制完成时,取消剩余未下发的任务
|
||||||
|
taskService.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_CANNEL.getCode())
|
||||||
|
.eq("table_fk_id",pdmProduceWorkorder.getWorkorder_code())
|
||||||
|
.lt("task_status",StatusEnum.TASK_RUNNING.getCode()));
|
||||||
Map<String, Object> result = wmsToAcsService.orderStatusUpdate(array);
|
Map<String, Object> result = wmsToAcsService.orderStatusUpdate(array);
|
||||||
if (!HttpStatus.OK.equals(result.get("status"))) {
|
if (!HttpStatus.OK.equals(result.get("status"))) {
|
||||||
log.error((String) result.get("message"));
|
log.error((String) result.get("message"));
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import org.nl.common.anno.Log;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.wms.scheduler_manage.service.scheduler.EngraveScheduleService;
|
import org.nl.wms.scheduler_manage.service.extendtask.Engrave.EngraveCallService;
|
||||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
import org.nl.wms.system_manage.service.dict.ISysDictService;
|
import org.nl.wms.system_manage.service.dict.ISysDictService;
|
||||||
@@ -47,7 +47,7 @@ public class TaskController {
|
|||||||
private ISchBaseTaskService baseTaskService;
|
private ISchBaseTaskService baseTaskService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private EngraveScheduleService engraveScheduleService;
|
private EngraveCallService engraveScheduleService;
|
||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@Log("查询任务")
|
@Log("查询任务")
|
||||||
@@ -140,14 +140,22 @@ public class TaskController {
|
|||||||
//@PreAuthorize("@el.check('task:edit')")
|
//@PreAuthorize("@el.check('task:edit')")
|
||||||
public ResponseEntity<Object> update(@RequestBody Map<String, Object> map) {
|
public ResponseEntity<Object> update(@RequestBody Map<String, Object> map) {
|
||||||
baseTaskService.operation(map);
|
baseTaskService.operation(map);
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/engraveScheduleService")
|
@PostMapping("/operation")
|
||||||
|
@Log("任务操作")
|
||||||
|
//("任务操作")
|
||||||
|
public ResponseEntity<Object> operation(@RequestBody Map<String, Object> map) {
|
||||||
|
baseTaskService.operation(map);
|
||||||
|
return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/engraveCallService")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> engraveScheduleService() {
|
public ResponseEntity<Object> engraveScheduleService(@RequestBody JSONArray query) {
|
||||||
engraveScheduleService.EngravePublish();
|
engraveScheduleService.createTask(query);
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,178 +0,0 @@
|
|||||||
package org.nl.wms.scheduler_manage.service.extendtask.Engrave;
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
|
||||||
import org.nl.common.enums.StatusEnum;
|
|
||||||
import org.nl.common.utils.IdUtil;
|
|
||||||
import org.nl.common.utils.MapOf;
|
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
|
||||||
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
|
||||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
|
||||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
|
||||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
|
||||||
import org.nl.wms.product_manage.service.workorder.dto.PdmProduceWorkorderDto;
|
|
||||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
|
||||||
import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
|
|
||||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
|
||||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
|
||||||
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.math.BigDecimal;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @author ZZQ
|
|
||||||
* @Date 2023/7/19 20:23
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
public class EngraveCallMaterialTask extends AbstractAcsTask {
|
|
||||||
private static final String ENGRAVE_WORKPRODURE = "1535144682756116480";
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ISchBaseTaskService taskService;
|
|
||||||
@Autowired
|
|
||||||
private IPdmProduceWorkorderService workorderService;
|
|
||||||
@Autowired
|
|
||||||
private IMdMeMaterialbaseService materialbaseService;
|
|
||||||
@Autowired
|
|
||||||
private WmsToAcsService wms;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateTaskStatus(JSONObject param, String status) {
|
|
||||||
SchBaseTask taskDao = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
|
||||||
.eq("task_id",param.getString("task_id")));
|
|
||||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
|
||||||
taskDao.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
|
||||||
}
|
|
||||||
if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
|
||||||
taskDao.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
|
||||||
}
|
|
||||||
if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
|
||||||
taskDao.setTask_status(TaskStatusEnum.CANCEL.getCode());
|
|
||||||
}
|
|
||||||
taskService.updateById(taskDao);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public String createTask(JSONObject param) {
|
|
||||||
if (!param.getString("status").equals(AcsTaskEnum.STATUS_FINISH.getCode())){ return null; }
|
|
||||||
SchBaseTask one = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
|
||||||
.eq("task_id", param.getString("task_id")));
|
|
||||||
SchBaseTask runTask = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
|
||||||
.eq("point_code1", "A1_KZ_SL")
|
|
||||||
.eq("task_type",AcsTaskEnum.TASK_Engrave_CALL.getCode())
|
|
||||||
.lt("task_status", StatusEnum.TASK_FINISH.getCode()));
|
|
||||||
if (runTask!=null){
|
|
||||||
if (one.getTask_id().equals(runTask.getTask_id())){
|
|
||||||
return "";
|
|
||||||
}else {
|
|
||||||
runTask.setTask_status(StatusEnum.TASK_CANNEL.getCode());
|
|
||||||
runTask.setUpdate_time(new Date());
|
|
||||||
runTask.setCreate_name("mes取消");
|
|
||||||
runTask.setRemark("刻字上料关联搬运任务"+one.getTask_code()+"不正确,任务强制取消并从新生产");
|
|
||||||
taskService.updateById(runTask);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
BigDecimal canuse_qty;
|
|
||||||
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>()
|
|
||||||
.eq("material_id",one.getMaterial_id())
|
|
||||||
.eq("is_delete", false));
|
|
||||||
|
|
||||||
Map<String, String> extParam = (Map<String, String>) param.get("extParam");
|
|
||||||
if (extParam == null || extParam.get("weight") == null){
|
|
||||||
canuse_qty = one.getMaterial_qty().multiply(material.getNet_weight());
|
|
||||||
}else {
|
|
||||||
canuse_qty = new BigDecimal(extParam.get("weight"));
|
|
||||||
}
|
|
||||||
int total = canuse_qty.intValue();
|
|
||||||
ArrayList<Map> taskMap = new ArrayList<>();
|
|
||||||
List<PdmProduceWorkorderDto> workorders= workorderService.getOrderByDevLimit(MapOf.of("workprocedure_id", ENGRAVE_WORKPRODURE,"material_id",one.getMaterial_id()));
|
|
||||||
|
|
||||||
for (int i = 0; i < workorders.size(); i++) {
|
|
||||||
PdmProduceWorkorderDto workorder = workorders.get(i);
|
|
||||||
if (canuse_qty.intValue()<=0){
|
|
||||||
break ;
|
|
||||||
}
|
|
||||||
Map<String,Object> map = new HashMap();
|
|
||||||
int min = Math.min(canuse_qty.intValue(), Math.min(workorder.getNeedQty().intValue(),workorder.getLimitQty().intValue()));
|
|
||||||
int weight = material.getNet_weight().multiply(BigDecimal.valueOf(min)).intValue();
|
|
||||||
map.put("device_code",workorder.getDevice_code());
|
|
||||||
if (i == workorders.size()-1){//临时处理:最后全部倒最后一框
|
|
||||||
map.put("weight",canuse_qty);
|
|
||||||
}else {
|
|
||||||
canuse_qty = canuse_qty.subtract(BigDecimal.valueOf(weight));
|
|
||||||
map.put("weight",weight);
|
|
||||||
}
|
|
||||||
map.put("qty",min);
|
|
||||||
map.put("sort",i+1);
|
|
||||||
taskMap.add(map);
|
|
||||||
}
|
|
||||||
SchBaseTask baseTask = packageTask(total, material, taskMap);
|
|
||||||
if (CollectionUtils.isEmpty(taskMap)){
|
|
||||||
throw new BadRequestException("当前任务:"+one.getTask_id()+"没送物料没有可上料的刻字机:"+one.getMaterial_id());
|
|
||||||
}
|
|
||||||
baseTask.setTable_fk_id(one.getTask_id());
|
|
||||||
taskService.save(baseTask);
|
|
||||||
//下发
|
|
||||||
JSONObject jo = new JSONObject();
|
|
||||||
jo.put("start_point_code", baseTask.getPoint_code1());
|
|
||||||
jo.put("task_code", baseTask.getTask_code());
|
|
||||||
jo.put("all_weight", new BigDecimal(total));
|
|
||||||
String[] to_sort_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
|
||||||
String[] to_devices_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
|
||||||
String[] to_weight_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
|
||||||
for (int i = 0; i < taskMap.size(); i++) {
|
|
||||||
Map map = taskMap.get(i);
|
|
||||||
to_sort_array[i] = String.valueOf(map.get("sort"));
|
|
||||||
to_devices_array[i] = String.valueOf(map.get("device_code"));
|
|
||||||
to_weight_array[i] = String.valueOf(map.get("weight"));
|
|
||||||
}
|
|
||||||
jo.put("to_sort_array", Arrays.stream(to_sort_array).collect(Collectors.joining(",")));
|
|
||||||
jo.put("to_devices_array",Arrays.stream(to_devices_array).collect(Collectors.joining(",")));
|
|
||||||
jo.put("to_weight_array", Arrays.stream(to_weight_array).collect(Collectors.joining(",")));
|
|
||||||
JSONObject result = wms.request(jo, "api/wms/engravingIn");
|
|
||||||
if (!result.getString("status").equals("200")){
|
|
||||||
throw new BadRequestException(result.getString("message"));
|
|
||||||
}
|
|
||||||
return baseTask.getTask_id();
|
|
||||||
}
|
|
||||||
|
|
||||||
private SchBaseTask packageTask(Integer canuse_qty, MdMeMaterialbase material, ArrayList<Map> taskMap) {
|
|
||||||
SchBaseTask baseTask = new SchBaseTask();
|
|
||||||
baseTask.setMaterial_id(material.getMaterial_id());
|
|
||||||
baseTask.setTask_id(IdUtil.getStringId());
|
|
||||||
baseTask.setTask_group_id(baseTask.getTask_id());
|
|
||||||
baseTask.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
|
||||||
baseTask.setTask_name( AcsTaskEnum.TASK_Engrave_CALL.getDesc());
|
|
||||||
baseTask.setTask_type( AcsTaskEnum.TASK_Engrave_CALL.getCode());
|
|
||||||
baseTask.setTask_status(StatusEnum.TASK_PUBLISH.getCode());
|
|
||||||
baseTask.setPoint_code1("A1_KZ_SL");
|
|
||||||
baseTask.setPoint_code3(taskMap.stream().map(a->(String)a.get("device_code")).collect(Collectors.joining(",")));
|
|
||||||
baseTask.setMaterial_qty(new BigDecimal(canuse_qty));
|
|
||||||
baseTask.setQtyArr(JSON.toJSONString(taskMap));
|
|
||||||
baseTask.setCreate_id("1");
|
|
||||||
baseTask.setCreate_name("acs");
|
|
||||||
baseTask.setHandle_class(this.getClass().getName());
|
|
||||||
baseTask.setCreate_time(new Date());
|
|
||||||
baseTask.setIs_auto_issue(false);
|
|
||||||
baseTask.setPriority("1");
|
|
||||||
return baseTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void cancel(String task_id) { }
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void pointConfirm(JSONObject param) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,108 @@
|
|||||||
|
package org.nl.wms.scheduler_manage.service.extendtask.Engrave;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
|
import org.nl.common.enums.StatusEnum;
|
||||||
|
import org.nl.common.enums.WorkerOrderEnum;
|
||||||
|
import org.nl.common.utils.BaseCode;
|
||||||
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.MapOf;
|
||||||
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.dto.PdmProduceWorkorderDto;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
|
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
|
||||||
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.IStIvtStructivtBcpService;
|
||||||
|
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
||||||
|
import org.slf4j.MDC;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ "'
|
||||||
|
* //一体机加一个从入库点到刻字机的搬运任务;
|
||||||
|
* //一体机加一个刻字机到空框回库
|
||||||
|
* //一体机加一个手动打开气缸按钮
|
||||||
|
* //一体机加预料上完:上到刻字机14号设备(虚拟设备)
|
||||||
|
* @Date 2023/6/16 09:21
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class EngraveCallService {
|
||||||
|
|
||||||
|
private static final String ENGRAVE_WORKPRODURE = "1535144682756116480";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IPdmProduceWorkorderService workorderService;
|
||||||
|
@Autowired
|
||||||
|
private IStIvtIostorinvBcpOutService stIvtIostorinvBcpOutService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
@Autowired
|
||||||
|
private IStIvtStructivtBcpService iStIvtStructivtBcpService; // 半成品库存服务
|
||||||
|
|
||||||
|
|
||||||
|
public void createTask(JSONArray param){
|
||||||
|
// [{"device_code":"A1_KZ_06","weight":"27160.500"},{"device_code":"A1_KZ_04","weight":"27160.500"}]
|
||||||
|
Assert.notNull(param,"请求参数不能为空");
|
||||||
|
String struct_code = null;
|
||||||
|
List<String> kzDevice= new ArrayList<>();
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
for (Object o : param) {
|
||||||
|
JSONObject item = JSONObject.parseObject(JSON.toJSONString(o));
|
||||||
|
struct_code = item.getString("struct_code");//货位;
|
||||||
|
kzDevice.add(item.getString("device_code"));
|
||||||
|
map.put(item.getString("device_code"),item.getString("weight"));
|
||||||
|
}
|
||||||
|
List<PdmProduceWorkorder> workorders = workorderService.list(new QueryWrapper<PdmProduceWorkorder>()
|
||||||
|
.eq("workprocedure_id", ENGRAVE_WORKPRODURE)
|
||||||
|
.in("device_code", kzDevice)
|
||||||
|
.eq("workorder_status", WorkerOrderEnum.PRODUCTING.getCode()));
|
||||||
|
if (workorders.size()!=kzDevice.size()){
|
||||||
|
throw new BadRequestException("当前刻字工单不在生产状态");
|
||||||
|
}
|
||||||
|
if (workorders.stream().map(PdmProduceWorkorder::getMaterial_id).collect(Collectors.toSet()).size()>1){
|
||||||
|
throw new BadRequestException("所选刻字机的物料规格不是同一种");
|
||||||
|
}
|
||||||
|
StIvtStructivtBcp stIvtStructivt = iStIvtStructivtBcpService.getOne(new QueryWrapper<StIvtStructivtBcp>()
|
||||||
|
.eq("struct_code", struct_code));
|
||||||
|
if(!workorders.get(0).getMaterial_id().equals(stIvtStructivt.getMaterial_id())){
|
||||||
|
throw new BadRequestException("半成品库存物料规格与刻字机工单物料不一致");
|
||||||
|
}
|
||||||
|
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
||||||
|
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
||||||
|
.in("task_type", AcsTaskEnum.TASK_STRUCT_OUT.getCode(),AcsTaskEnum.TASK_Engrave_CALL.getCode(), AcsTaskEnum.TASK_Engrave_EMPTY.getCode()));
|
||||||
|
if (!CollectionUtils.isEmpty(list)){
|
||||||
|
throw new BadRequestException("存在正在执行的刻字上料相关任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(",")));
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject form = new JSONObject();
|
||||||
|
form.put("stor_id", IOSEnum.STOR_CODE.code("半成品仓库"));//st_ivt_sectattr紫铜车间-半成品库区
|
||||||
|
form.put("sect_id",IOSEnum.SECT_CODE.code("半成品库区"));
|
||||||
|
form.put("product_code","A1");//车间
|
||||||
|
form.put("bill_type","1001");//生产出库
|
||||||
|
form.put("material_id",stIvtStructivt.getMaterial_id());//生产出库
|
||||||
|
form.put("point_code","A1_KZ_SL");//刻字爬坡倒料点
|
||||||
|
form.put("stIvtStructivt",stIvtStructivt);//刻字爬坡倒料点
|
||||||
|
form.put("qtyArr",map);//刻字爬坡倒料点
|
||||||
|
StIvtStructivtBcp stIvtStructivtBcp = stIvtIostorinvBcpOutService.autoConfirmout(form);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,152 @@
|
|||||||
|
package org.nl.wms.scheduler_manage.service.extendtask.Engrave;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
|
import org.nl.common.enums.StatusEnum;
|
||||||
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.MapOf;
|
||||||
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
|
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||||
|
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
||||||
|
import org.nl.wms.product_manage.service.workorder.dto.PdmProduceWorkorderDto;
|
||||||
|
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
|
||||||
|
import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
||||||
|
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.math.BigDecimal;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2023/7/19 20:23
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class EngraveTranSportTask extends AbstractAcsTask {
|
||||||
|
private static final String ENGRAVE_WORKPRODURE = "1535144682756116480";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
@Autowired
|
||||||
|
private IPdmProduceWorkorderService workorderService;
|
||||||
|
@Autowired
|
||||||
|
private IMdMeMaterialbaseService materialbaseService;
|
||||||
|
@Autowired
|
||||||
|
private WmsToAcsService wms;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateTaskStatus(JSONObject param, String status) {
|
||||||
|
SchBaseTask taskDao = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
||||||
|
.eq("task_id",param.getString("task_id")));
|
||||||
|
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||||
|
taskDao.setTask_status(TaskStatusEnum.FINISHED.getCode());
|
||||||
|
}
|
||||||
|
if (status.equals(AcsTaskEnum.STATUS_START.getCode())) {
|
||||||
|
taskDao.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||||
|
}
|
||||||
|
if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) {
|
||||||
|
taskDao.setTask_status(TaskStatusEnum.CANCEL.getCode());
|
||||||
|
}
|
||||||
|
taskService.updateById(taskDao);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public String createTask(JSONObject param) {
|
||||||
|
if (!param.getString("status").equals(AcsTaskEnum.STATUS_FINISH.getCode())){ return null; }
|
||||||
|
SchBaseTask one = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
||||||
|
.eq("task_id", param.getString("task_id")));
|
||||||
|
SchBaseTask current = taskService.getOne(new QueryWrapper<SchBaseTask>()
|
||||||
|
.eq("task_type", AcsTaskEnum.TASK_Engrave_CALL.getCode())
|
||||||
|
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
|
||||||
|
try {
|
||||||
|
if (current!=null){
|
||||||
|
throw new BadRequestException("存在正刻字上料任务"+current.getTask_code()+",请先手动完成该任务再强制完成搬运任务");
|
||||||
|
}
|
||||||
|
|
||||||
|
MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper<MdMeMaterialbase>()
|
||||||
|
.eq("material_id",one.getMaterial_id())
|
||||||
|
.eq("is_delete", false));
|
||||||
|
Map<String,String> qtyArr = JSONObject.parseObject(one.getQtyArr(), Map.class);
|
||||||
|
|
||||||
|
SchBaseTask baseTask = packageTask(one.getMaterial_qty().intValue(), material, qtyArr);
|
||||||
|
baseTask.setTable_fk_id(one.getTask_id());
|
||||||
|
//下发
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
jo.put("start_point_code", baseTask.getPoint_code1());
|
||||||
|
jo.put("task_code", baseTask.getTask_code());
|
||||||
|
jo.put("all_weight", one.getMaterial_qty().intValue());
|
||||||
|
String[] to_sort_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
||||||
|
String[] to_devices_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
||||||
|
String[] to_weight_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
|
||||||
|
int i=1;
|
||||||
|
for (Map.Entry<String, String> entry : qtyArr.entrySet()) {
|
||||||
|
to_sort_array[i] = String.valueOf(i);
|
||||||
|
to_devices_array[i] = String.valueOf(entry.getKey());
|
||||||
|
to_weight_array[i] = String.valueOf(new BigDecimal(entry.getValue()).intValue());
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
jo.put("to_sort_array", Arrays.stream(to_sort_array).collect(Collectors.joining(",")));
|
||||||
|
jo.put("to_devices_array",Arrays.stream(to_devices_array).collect(Collectors.joining(",")));
|
||||||
|
jo.put("to_weight_array", Arrays.stream(to_weight_array).collect(Collectors.joining(",")));
|
||||||
|
JSONObject result = wms.request(jo, "api/wms/engravingIn");
|
||||||
|
if (!result.getString("status").equals("200")){
|
||||||
|
log.error("刻字上料输送线任务下发异常:{}",result.getString("message"));
|
||||||
|
throw new BadRequestException(result.getString("message"));
|
||||||
|
}
|
||||||
|
taskService.save(baseTask);
|
||||||
|
return baseTask.getTask_id();
|
||||||
|
}catch (Exception ex){
|
||||||
|
one.setRemark("输送线任务异常,任务无法完成"+ex.getMessage());
|
||||||
|
one.setTask_status(TaskStatusEnum.EXECUTING.getCode());
|
||||||
|
one.setTask_step(1);
|
||||||
|
taskService.updateById(one);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private SchBaseTask packageTask(Integer canuse_qty, MdMeMaterialbase material, Map<String,String> taskMap) {
|
||||||
|
SchBaseTask baseTask = new SchBaseTask();
|
||||||
|
baseTask.setMaterial_id(material.getMaterial_id());
|
||||||
|
baseTask.setTask_id(IdUtil.getStringId());
|
||||||
|
baseTask.setTask_group_id(baseTask.getTask_id());
|
||||||
|
baseTask.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
baseTask.setTask_name( AcsTaskEnum.TASK_Engrave_CALL.getDesc());
|
||||||
|
baseTask.setTask_type( AcsTaskEnum.TASK_Engrave_CALL.getCode());
|
||||||
|
baseTask.setTask_status(StatusEnum.TASK_PUBLISH.getCode());
|
||||||
|
baseTask.setPoint_code1("A1_KZ_SL");
|
||||||
|
baseTask.setPoint_code3(taskMap.entrySet().stream().map(a->a.getKey()).collect(Collectors.joining(",")));
|
||||||
|
baseTask.setMaterial_qty(new BigDecimal(canuse_qty));
|
||||||
|
baseTask.setQtyArr(JSON.toJSONString(taskMap));
|
||||||
|
baseTask.setCreate_id("1");
|
||||||
|
baseTask.setCreate_name("acs");
|
||||||
|
baseTask.setHandle_class(this.getClass().getName());
|
||||||
|
baseTask.setCreate_time(new Date());
|
||||||
|
baseTask.setIs_auto_issue(false);
|
||||||
|
baseTask.setPriority("1");
|
||||||
|
baseTask.setTask_step(2);
|
||||||
|
return baseTask;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel(String task_id) { }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pointConfirm(JSONObject param) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package org.nl.wms.scheduler_manage.service.extendtask;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
@@ -44,6 +45,7 @@ public class PointListener extends AbstraceListener<PointEvent> {
|
|||||||
task.put("material_id", extParam.get("material_id"));
|
task.put("material_id", extParam.get("material_id"));
|
||||||
task.put("material_qty", extParam.get("material_qty"));
|
task.put("material_qty", extParam.get("material_qty"));
|
||||||
task.put("table_fk_id", extParam.get("table_fk_id"));
|
task.put("table_fk_id", extParam.get("table_fk_id"));
|
||||||
|
task.put("qtyArr", JSON.toJSONString(extParam.get("qtyArr")));
|
||||||
}
|
}
|
||||||
task.put("is_delete", StatusEnum.LOCK_OFF.getCode());
|
task.put("is_delete", StatusEnum.LOCK_OFF.getCode());
|
||||||
task.put("create_id", SecurityUtils.getCurrentUserId());
|
task.put("create_id", SecurityUtils.getCurrentUserId());
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
@@ -122,22 +123,21 @@ public class WashCallEmptyTask extends AbstractAcsTask {
|
|||||||
taskService.save(schBaseTask);
|
taskService.save(schBaseTask);
|
||||||
// 找终点
|
// 找终点
|
||||||
try {
|
try {
|
||||||
RedissonUtils.lock(() -> {
|
pointConfirm(task);
|
||||||
pointConfirm(task);
|
JSONArray data = new JSONArray();
|
||||||
JSONArray data = new JSONArray();
|
data.add(task);
|
||||||
data.add(task);
|
// 下发
|
||||||
// 下发
|
wms.issueTaskToAcs(data);
|
||||||
Map<String, Object> stringObjectMap = wms.issueTaskToAcs(data);
|
|
||||||
|
|
||||||
}, "bcpcallemp", 2);
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
structattrService.update(
|
if (StringUtils.isNotEmpty(task.getString("point_code1"))){
|
||||||
new UpdateWrapper<StIvtStructattr>().lambda()
|
structattrService.update(
|
||||||
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
new UpdateWrapper<StIvtStructattr>().lambda()
|
||||||
.set(StIvtStructattr::getTask_code, "")
|
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
.eq(StIvtStructattr::getStruct_code, task.getString("point_code1"))
|
.set(StIvtStructattr::getTask_code, "")
|
||||||
);
|
.eq(StIvtStructattr::getStruct_code, task.getString("point_code1"))
|
||||||
log.error("刻字请求异常,error:{}",ex);
|
);
|
||||||
|
}
|
||||||
|
log.error("清洗空框请求异常,error:{}",ex);
|
||||||
schBaseTask.setRemark(ex.getMessage());
|
schBaseTask.setRemark(ex.getMessage());
|
||||||
schBaseTask.setUpdate_time(new Date());
|
schBaseTask.setUpdate_time(new Date());
|
||||||
schBaseTask.setUpdate_name("acs");
|
schBaseTask.setUpdate_name("acs");
|
||||||
|
|||||||
@@ -141,6 +141,10 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
public void update(JSONObject form) {
|
public void update(JSONObject form) {
|
||||||
Assert.notNull(form,"参数不能为空");
|
Assert.notNull(form,"参数不能为空");
|
||||||
SchBasePoint point = form.toJavaObject(SchBasePoint.class);
|
SchBasePoint point = form.toJavaObject(SchBasePoint.class);
|
||||||
|
if (point.getPoint_status().equals("1")){
|
||||||
|
point.setVehicle_code("");
|
||||||
|
point.setMaterial_id("");
|
||||||
|
}
|
||||||
point.setUpdate_id(SecurityUtils.getCurrentUserId());
|
point.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||||
point.setUpdate_name(SecurityUtils.getCurrentNickName());
|
point.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||||
point.setUpdate_time(new Date());
|
point.setUpdate_time(new Date());
|
||||||
|
|||||||
@@ -1,99 +0,0 @@
|
|||||||
package org.nl.wms.scheduler_manage.service.scheduler;
|
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
|
||||||
import org.nl.common.enums.StatusEnum;
|
|
||||||
import org.nl.common.enums.WorkerOrderEnum;
|
|
||||||
import org.nl.common.utils.BaseCode;
|
|
||||||
import org.nl.common.utils.IdUtil;
|
|
||||||
import org.nl.common.utils.MapOf;
|
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
|
||||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
|
||||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
|
||||||
import org.nl.wms.product_manage.service.workorder.dto.PdmProduceWorkorderDto;
|
|
||||||
import org.nl.wms.scheduler_manage.service.extendtask.Engrave.EngraveCallMaterialTask;
|
|
||||||
import org.nl.wms.scheduler_manage.service.extendtask.wash.WashSendMaterialTask;
|
|
||||||
import org.nl.wms.product_manage.service.workorder.IPdmProduceWorkorderService;
|
|
||||||
import org.nl.wms.product_manage.service.workorder.dao.PdmProduceWorkorder;
|
|
||||||
import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService;
|
|
||||||
import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask;
|
|
||||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
|
|
||||||
import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp;
|
|
||||||
import org.slf4j.MDC;
|
|
||||||
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.math.BigDecimal;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @author ZZQ "'
|
|
||||||
* //一体机加一个从入库点到刻字机的搬运任务;
|
|
||||||
* //一体机加一个刻字机到空框回库
|
|
||||||
* //一体机加一个手动打开气缸按钮
|
|
||||||
* //一体机加预料上完:上到刻字机14号设备(虚拟设备)
|
|
||||||
* @Date 2023/6/16 09:21
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
@Slf4j
|
|
||||||
public class EngraveScheduleService {
|
|
||||||
|
|
||||||
private static final String ENGRAVE_WORKPRODURE = "1535144682756116480";
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private IPdmProduceWorkorderService workorderService;
|
|
||||||
@Autowired
|
|
||||||
private IStIvtIostorinvBcpOutService stIvtIostorinvBcpOutService;
|
|
||||||
@Autowired
|
|
||||||
private ISchBaseTaskService taskService;
|
|
||||||
|
|
||||||
public void run(){
|
|
||||||
MDC.put("requestMethod","EngraveScheduleService#EngravePublish");
|
|
||||||
MDC.put("requestIp", "127.0.0.1");
|
|
||||||
MDC.put("traceId", BaseCode.intToChars(IdUtil.getLongId()));
|
|
||||||
MDC.put("requestTime", DateUtil.now());
|
|
||||||
this.EngravePublish();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void EngravePublish(){
|
|
||||||
List<SchBaseTask> list = taskService.list(new QueryWrapper<SchBaseTask>()
|
|
||||||
.lt("task_status", StatusEnum.TASK_FINISH.getCode())
|
|
||||||
.in("task_type", AcsTaskEnum.TASK_STRUCT_OUT.getCode(),AcsTaskEnum.TASK_Engrave_CALL.getCode(), AcsTaskEnum.TASK_Engrave_EMPTY.getCode()));
|
|
||||||
if (!CollectionUtils.isEmpty(list)){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
List<PdmProduceWorkorderDto> workorders= workorderService.getOrderByDevLimit(MapOf.of("workprocedure_id", ENGRAVE_WORKPRODURE));
|
|
||||||
if (CollectionUtils.isEmpty(workorders)){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
JSONObject form = new JSONObject();
|
|
||||||
form.put("stor_id","15286279952695336962");//st_ivt_sectattr紫铜车间-半成品库区
|
|
||||||
form.put("sect_id","1528631044482404352");
|
|
||||||
form.put("product_code","A1");//车间
|
|
||||||
form.put("bitt_type","1001");//生产出库
|
|
||||||
form.put("point_code","A1_KZ_SL");//刻字爬坡倒料点
|
|
||||||
try {
|
|
||||||
for (PdmProduceWorkorderDto workorder : workorders) {
|
|
||||||
form.put("material_id",workorder.getMaterial_id());
|
|
||||||
StIvtStructivtBcp stIvtStructivtBcp = stIvtIostorinvBcpOutService.autoConfirmout(form);
|
|
||||||
if (stIvtStructivtBcp!=null){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch (Exception ex){
|
|
||||||
log.warn("定时任务——半成品上料异常:{}",ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -12,6 +12,7 @@ import org.nl.common.enums.AcsTaskEnum;
|
|||||||
import org.nl.common.enums.StatusEnum;
|
import org.nl.common.enums.StatusEnum;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.MapOf;
|
import org.nl.common.utils.MapOf;
|
||||||
|
import org.nl.common.utils.RedissonUtils;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
@@ -56,7 +57,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
@Override
|
@Override
|
||||||
public List<Map> queryAll(Map query) {
|
public List<Map> queryAll(Map query) {
|
||||||
if (query.get("task_status") != null && ((String)query.get("task_status")).contains("-1")){
|
if (query.get("task_status") != null && ((String)query.get("task_status")).contains("-1")){
|
||||||
query.put("task_status",((String)query.get("task_status")).replaceAll("-1","1,4,5"));
|
query.put("task_status",((String)query.get("task_status")).replaceAll("-1","1,2,3,4,5,6"));
|
||||||
}
|
}
|
||||||
List<Map> maps = this.baseMapper.queryAll(query);
|
List<Map> maps = this.baseMapper.queryAll(query);
|
||||||
return maps;
|
return maps;
|
||||||
@@ -66,84 +67,86 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
public void operation(Map<String, Object> map) {
|
public void operation(Map<String, Object> map) {
|
||||||
WmsToAcsServiceImpl wms = new WmsToAcsServiceImpl();
|
WmsToAcsServiceImpl wms = new WmsToAcsServiceImpl();
|
||||||
String task_id = MapUtil.getStr(map, "task_id");
|
String task_id = MapUtil.getStr(map, "task_id");
|
||||||
String method_name = MapUtil.getStr(map, "method_name");
|
RedissonUtils.lock(()->{
|
||||||
SchBaseTask taskObj = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
String method_name = MapUtil.getStr(map, "method_name");
|
||||||
switch (method_name) { // forceFinish, cancel
|
SchBaseTask taskObj = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
||||||
case "immediateNotifyAcs":
|
switch (method_name) { // forceFinish, cancel
|
||||||
if (Integer.valueOf(taskObj.getTask_status())<Integer.valueOf(TaskStatusEnum.EXECUTING.getCode())){
|
case "immediateNotifyAcs":
|
||||||
try {
|
if (Integer.valueOf(taskObj.getTask_status())<Integer.valueOf(TaskStatusEnum.EXECUTING.getCode())){
|
||||||
if (taskObj.getHandle_class()!=null){
|
try {
|
||||||
AbstractAcsTask taskHandler = (AbstractAcsTask) SpringContextHolder.getBean(Class.forName(taskObj.getHandle_class()));
|
if (taskObj.getHandle_class()!=null){
|
||||||
taskHandler.pointConfirm((JSONObject) JSONObject.toJSON(taskObj));
|
AbstractAcsTask taskHandler = (AbstractAcsTask) SpringContextHolder.getBean(Class.forName(taskObj.getHandle_class()));
|
||||||
|
taskHandler.pointConfirm((JSONObject) JSONObject.toJSON(taskObj));
|
||||||
|
}
|
||||||
|
SchBaseTask task = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
||||||
|
JSONArray array = new JSONArray();
|
||||||
|
array.add(JSON.toJSON(task));
|
||||||
|
Map<String, Object> result = wms.issueTaskToAcs(array);
|
||||||
|
String status = String.valueOf(result.get("status"));
|
||||||
|
if (!status.equals("200")) {
|
||||||
|
throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常");
|
||||||
|
}
|
||||||
|
this.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("task_status",StatusEnum.TASK_PUBLISH.getCode())
|
||||||
|
.eq("task_id",task_id));
|
||||||
|
}catch (Exception ex){
|
||||||
|
taskObj.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
||||||
|
taskObj.setRemark(ex.getMessage());
|
||||||
|
taskObj.setUpdate_time(new Date());
|
||||||
|
if (StringUtils.isNotEmpty(taskObj.getPoint_code1())|| StringUtils.isNotEmpty(taskObj.getPoint_code2())){
|
||||||
|
pointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
||||||
|
.in("point_code",taskObj.getPoint_code1(),taskObj.getPoint_code2()));
|
||||||
|
}
|
||||||
|
this.updateById(taskObj);
|
||||||
}
|
}
|
||||||
SchBaseTask task = this.getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
|
||||||
JSONArray array = new JSONArray();
|
|
||||||
array.add(JSON.toJSON(task));
|
|
||||||
Map<String, Object> result = wms.issueTaskToAcs(array);
|
|
||||||
String status = String.valueOf(result.get("status"));
|
|
||||||
if (!status.equals("200")) {
|
|
||||||
throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常");
|
|
||||||
}
|
|
||||||
this.update(new UpdateWrapper<SchBaseTask>()
|
|
||||||
.set("task_status",StatusEnum.TASK_PUBLISH.getCode())
|
|
||||||
.eq("task_id",task_id));
|
|
||||||
}catch (Exception ex){
|
|
||||||
taskObj.setTask_status(StatusEnum.TASK_START_ERROR.getCode());
|
|
||||||
taskObj.setRemark(ex.getMessage());
|
|
||||||
taskObj.setUpdate_time(new Date());
|
|
||||||
if (StringUtils.isNotEmpty(taskObj.getPoint_code1())|| StringUtils.isNotEmpty(taskObj.getPoint_code2())){
|
|
||||||
pointService.update(new UpdateWrapper<SchBasePoint>()
|
|
||||||
.set("lock_type",StatusEnum.LOCK_OFF.getCode())
|
|
||||||
.in("point_code",taskObj.getPoint_code1(),taskObj.getPoint_code2()));
|
|
||||||
}
|
|
||||||
this.updateById(taskObj);
|
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
break;
|
case "forceFinish":
|
||||||
case "forceFinish":
|
JSONArray finish = new JSONArray();
|
||||||
JSONArray finish = new JSONArray();
|
JSONObject res = new JSONObject();
|
||||||
JSONObject res = new JSONObject();
|
res.put("task_id", task_id);
|
||||||
res.put("task_id", task_id);
|
res.put("status", AcsTaskEnum.STATUS_FINISH.getCode());
|
||||||
res.put("status", AcsTaskEnum.STATUS_FINISH.getCode());
|
res.put("finished_type", AcsTaskEnum.MANUAL_TASK_FINISHED_TYPE.getCode()); // 手动完成
|
||||||
res.put("finished_type", AcsTaskEnum.MANUAL_TASK_FINISHED_TYPE.getCode()); // 手动完成
|
finish.add(res);
|
||||||
finish.add(res);
|
|
||||||
acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(finish));
|
|
||||||
this.update(new UpdateWrapper<SchBaseTask>()
|
|
||||||
.set("task_status",StatusEnum.TASK_FINISH.getCode())
|
|
||||||
.eq("task_id", task_id));
|
|
||||||
break;
|
|
||||||
case "cancel":
|
|
||||||
if (taskObj.getTask_status().equals(StatusEnum.TASK_RUNNING.getCode())||taskObj.getTask_status().equals(StatusEnum.TASK_PUBLISH.getCode())){
|
|
||||||
JSONArray cancel = new JSONArray();
|
|
||||||
JSONObject res2 = new JSONObject();
|
|
||||||
res2.put("task_id", task_id);
|
|
||||||
res2.put("status", AcsTaskEnum.STATUS_CANNEL.getCode());
|
|
||||||
cancel.add(res2);
|
|
||||||
acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel));
|
|
||||||
}else {
|
|
||||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
|
||||||
taskTable.update(MapOf.of("task_status",StatusEnum.TASK_CANNEL.getCode()),"task_id = '"+task_id+"'");
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case "delete":
|
|
||||||
SchBaseTask one = getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
|
||||||
int status = Integer.valueOf(one.getTask_status());
|
|
||||||
//判断如果在3个状态之内,更新操作
|
|
||||||
int tag = 1 << StatusEnum.TASK_CANNEL.getBit()
|
|
||||||
| 1 << StatusEnum.TASK_CREATE.getBit()
|
|
||||||
| 1 << StatusEnum.TASK_START_ERROR.getBit()
|
|
||||||
| 1 << StatusEnum.TASK_START_END_P.getBit();
|
|
||||||
if ((tag &~ 1 << status) != tag){
|
|
||||||
this.update(new UpdateWrapper<SchBaseTask>()
|
this.update(new UpdateWrapper<SchBaseTask>()
|
||||||
.set("is_delete",true)
|
.set("task_status",StatusEnum.TASK_FINISH.getCode())
|
||||||
.eq("task_id", task_id));
|
.eq("task_id", task_id));
|
||||||
}else {
|
acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(finish));
|
||||||
throw new BadRequestException("任务已经下发不允许直接删除");
|
break;
|
||||||
}
|
case "cancel":
|
||||||
break;
|
if (taskObj.getTask_status().equals(StatusEnum.TASK_RUNNING.getCode())||taskObj.getTask_status().equals(StatusEnum.TASK_PUBLISH.getCode())){
|
||||||
default: break;
|
JSONArray cancel = new JSONArray();
|
||||||
}
|
JSONObject res2 = new JSONObject();
|
||||||
|
res2.put("task_id", task_id);
|
||||||
|
res2.put("status", AcsTaskEnum.STATUS_CANNEL.getCode());
|
||||||
|
cancel.add(res2);
|
||||||
|
acsToWmsService.receiveTaskStatusAcs(JSON.toJSONString(cancel));
|
||||||
|
}else {
|
||||||
|
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||||
|
taskTable.update(MapOf.of("task_status",StatusEnum.TASK_CANNEL.getCode()),"task_id = '"+task_id+"'");
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "delete":
|
||||||
|
SchBaseTask one = getOne(new QueryWrapper<SchBaseTask>().eq("task_id", task_id));
|
||||||
|
int status = Integer.valueOf(one.getTask_status());
|
||||||
|
//判断如果在3个状态之内,更新操作
|
||||||
|
int tag = 1 << StatusEnum.TASK_CANNEL.getBit()
|
||||||
|
| 1 << StatusEnum.TASK_CREATE.getBit()
|
||||||
|
| 1 << StatusEnum.TASK_START_ERROR.getBit()
|
||||||
|
| 1 << StatusEnum.TASK_START_END_P.getBit();
|
||||||
|
if ((tag &~ 1 << status) != tag){
|
||||||
|
this.update(new UpdateWrapper<SchBaseTask>()
|
||||||
|
.set("is_delete",true)
|
||||||
|
.eq("task_id", task_id));
|
||||||
|
}else {
|
||||||
|
throw new BadRequestException("任务已经下发不允许直接删除");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
},task_id,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ public enum IOSEnum {
|
|||||||
IS_USED(MapOf.of("是", "1", "否", "0")),
|
IS_USED(MapOf.of("是", "1", "否", "0")),
|
||||||
//仓库编码
|
//仓库编码
|
||||||
STOR_CODE(MapOf.of("原材料仓", "1528627964823080960", "半成品仓库", "15286279952695336962","成品库", "1528627995269533696")),
|
STOR_CODE(MapOf.of("原材料仓", "1528627964823080960", "半成品仓库", "15286279952695336962","成品库", "1528627995269533696")),
|
||||||
|
//库区编码
|
||||||
|
SECT_CODE(MapOf.of("成品库区", "1528631043496742912", "半成品库区", "1528631044482404352")),
|
||||||
//托盘超限类型
|
//托盘超限类型
|
||||||
VEHICLE_OVER_TYPE(MapOf.of("标准", "00", "横向超", "01","纵向超","02")),
|
VEHICLE_OVER_TYPE(MapOf.of("标准", "00", "横向超", "01","纵向超","02")),
|
||||||
//单据类型
|
//单据类型
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ public class PdaStBcpInServiceImpl implements PdaStBcpInService {
|
|||||||
|
|
||||||
// 反馈
|
// 反馈
|
||||||
result.put("message", "下发成功");
|
result.put("message", "下发成功");
|
||||||
}, "bcpcallemp", null);
|
}, AcsTaskEnum.REQUEST_WARP_SEND_EMP.getCode(), null);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ public class PdaStCpInServiceImpl implements PdaStCpInService {
|
|||||||
public JSONObject getMaterial(JSONObject whereJson) {
|
public JSONObject getMaterial(JSONObject whereJson) {
|
||||||
List<Map> list = iMpsSaleOrderService.getPdaMaterial(whereJson);
|
List<Map> list = iMpsSaleOrderService.getPdaMaterial(whereJson);
|
||||||
for (Map map : list) {
|
for (Map map : list) {
|
||||||
map.put("create_time",DateUtil.date((Date) map.get("plandeliver_date")).toString());
|
map.put("create_time",map.get("plandeliver_date"));
|
||||||
}
|
}
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
result.put("data", JSONArray.parseArray(JSON.toJSONString(list)));
|
result.put("data", JSONArray.parseArray(JSON.toJSONString(list)));
|
||||||
|
|||||||
@@ -5,13 +5,12 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.nl.common.enums.AcsTaskEnum;
|
import org.nl.common.enums.AcsTaskEnum;
|
||||||
import org.nl.modules.wql.util.SpringContextHolder;
|
import org.nl.modules.wql.util.SpringContextHolder;
|
||||||
import org.nl.wms.scheduler_manage.service.extendtask.Engrave.EngraveCallMaterialTask;
|
import org.nl.wms.scheduler_manage.service.extendtask.Engrave.EngraveTranSportTask;
|
||||||
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
import org.nl.wms.scheduler_manage.service.point.ISchBasePointService;
|
||||||
import org.nl.wms.storage_manage.pda.service.PdaStBcpInService;
|
import org.nl.wms.storage_manage.pda.service.PdaStBcpInService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService;
|
import org.nl.wms.storage_manage.productmanage.service.check.IStIvtCheckmstCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
||||||
import org.nl.wms.storage_manage.rawmanage.service.check.IStIvtCheckmstYlService;
|
|
||||||
import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckmstBcpService;
|
import org.nl.wms.storage_manage.semimanage.service.check.IStIvtCheckmstBcpService;
|
||||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
|
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService;
|
||||||
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService;
|
import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService;
|
||||||
@@ -32,7 +31,7 @@ public enum TASKEnum implements FunctionStrategy<String, JSONObject> {
|
|||||||
bean.taskOperate(form);
|
bean.taskOperate(form);
|
||||||
}),
|
}),
|
||||||
OUT_TASK_CAll(type -> AcsTaskEnum.TASK_STRUCT_OUT.getCode().equals(type), form -> {
|
OUT_TASK_CAll(type -> AcsTaskEnum.TASK_STRUCT_OUT.getCode().equals(type), form -> {
|
||||||
EngraveCallMaterialTask bean = SpringContextHolder.getBean(EngraveCallMaterialTask.class);
|
EngraveTranSportTask bean = SpringContextHolder.getBean(EngraveTranSportTask.class);
|
||||||
bean.createTask(form);
|
bean.createTask(form);
|
||||||
}),
|
}),
|
||||||
CHECK_TASK(type -> AcsTaskEnum.TASK_STRUCT_CHECK.getCode().equals(type), form -> {
|
CHECK_TASK(type -> AcsTaskEnum.TASK_STRUCT_CHECK.getCode().equals(type), form -> {
|
||||||
|
|||||||
@@ -48,6 +48,13 @@ public class StIvtStructivtBcpController {
|
|||||||
public ResponseEntity<Object> query(StructIvtBcpQuery query, PageQuery page) {
|
public ResponseEntity<Object> query(StructIvtBcpQuery query, PageQuery page) {
|
||||||
return new ResponseEntity<>(bcpService.packageQuery(query,page), HttpStatus.OK);
|
return new ResponseEntity<>(bcpService.packageQuery(query,page), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
@PostMapping("/bypda")
|
||||||
|
@Log("半成品库存查询")
|
||||||
|
//("半成品库存查询")
|
||||||
|
public ResponseEntity<Object> bypdaQuery(@RequestBody PageQuery query) {
|
||||||
|
query.setPage(0);
|
||||||
|
return new ResponseEntity<>(bcpService.packageQuery(new StructIvtBcpQuery(),query), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/getBcpIvt")
|
@GetMapping("/getBcpIvt")
|
||||||
@Log("查询可用的半成品库存")
|
@Log("查询可用的半成品库存")
|
||||||
|
|||||||
@@ -296,66 +296,72 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl<StIvtIostorinvB
|
|||||||
param.put("material_id", form.getString("material_id"));
|
param.put("material_id", form.getString("material_id"));
|
||||||
param.put("rule_type", RuleUtil.PRODUCTION_OUT_2);
|
param.put("rule_type", RuleUtil.PRODUCTION_OUT_2);
|
||||||
// 2.锁定仓位
|
// 2.锁定仓位
|
||||||
StIvtStructivtBcp stIvtStructivtBcp = divRuleCpService.divRuleOutBcp(param);
|
StIvtStructivtBcp stIvtStructivtBcp;
|
||||||
if (stIvtStructivtBcp != null) {
|
if (form.get("stIvtStructivt")==null){
|
||||||
StIvtIostorinvBcp mst = new StIvtIostorinvBcp();
|
stIvtStructivtBcp = divRuleCpService.divRuleOutBcp(param);
|
||||||
mst.setIostorinv_id(IdUtil.getStringId());
|
}else {
|
||||||
mst.setBill_code(CodeUtil.getNewCode("IO_CODE"));
|
stIvtStructivtBcp=(StIvtStructivtBcp)form.get("stIvtStructivt");
|
||||||
mst.setBiz_date(form.getString("biz_date"));
|
}
|
||||||
mst.setBill_type(form.getString("bill_type"));
|
if ((stIvtStructivtBcp == null)){
|
||||||
mst.setIo_type(IOSEnum.IO_TYPE.code("出库"));
|
throw new BadRequestException("无可用货位");
|
||||||
mst.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
}
|
||||||
mst.setRemark(form.getString("remark"));
|
StIvtIostorinvBcp mst = new StIvtIostorinvBcp();
|
||||||
mst.setWorkshop_id(form.getString("product_code"));
|
mst.setIostorinv_id(IdUtil.getStringId());
|
||||||
mst.setPoint_code(form.getString("point_code"));
|
mst.setBill_code(CodeUtil.getNewCode("IO_CODE"));
|
||||||
mst.setMaterial_id(material.getMaterial_id());
|
mst.setBiz_date(form.getString("biz_date"));
|
||||||
mst.setPcsn(StringUtils.isNotEmpty(form.getString("pcsn")) ? form.getString("pcsn") : DateUtil.today());
|
mst.setBill_type(form.getString("bill_type"));
|
||||||
mst.setPlan_qty(stIvtStructivtBcp.getCanuse_qty());
|
mst.setIo_type(IOSEnum.IO_TYPE.code("出库"));
|
||||||
mst.setQuality_scode(stIvtStructivtBcp.getQuality_scode());
|
mst.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||||
mst.setQty_unit_id(stIvtStructivtBcp.getQty_unit_id());
|
mst.setRemark(form.getString("remark"));
|
||||||
mst.setBase_bill_code("");
|
mst.setWorkshop_id(form.getString("product_code"));
|
||||||
mst.setQty_unit_name(" ");
|
mst.setPoint_code(form.getString("point_code"));
|
||||||
mst.setUnit_weight(material.getNet_weight());
|
mst.setMaterial_id(material.getMaterial_id());
|
||||||
mst.setStoragevehicle_code(" ");
|
mst.setPcsn(StringUtils.isNotEmpty(form.getString("pcsn")) ? form.getString("pcsn") : DateUtil.today());
|
||||||
mst.setStoragevehicle_id(" ");
|
mst.setPlan_qty(stIvtStructivtBcp.getCanuse_qty());
|
||||||
仓库数据:
|
mst.setQuality_scode(stIvtStructivtBcp.getQuality_scode());
|
||||||
{
|
mst.setQty_unit_id(stIvtStructivtBcp.getQty_unit_id());
|
||||||
StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper<StIvtBsrealstorattr>().eq("stor_id", form.getString("stor_id")));
|
mst.setBase_bill_code("");
|
||||||
mst.setStor_id(stor.getStor_id());
|
mst.setQty_unit_name(" ");
|
||||||
mst.setStor_code(stor.getStor_code());
|
mst.setUnit_weight(material.getNet_weight());
|
||||||
mst.setStor_name(stor.getStor_name());
|
mst.setStoragevehicle_code(" ");
|
||||||
StIvtSectattr sect = sectattrService.getById(form.getString("sect_id"));
|
mst.setStoragevehicle_id(" ");
|
||||||
mst.setSect_code(sect.getSect_code());
|
仓库数据:
|
||||||
mst.setSect_id(sect.getSect_id());
|
{
|
||||||
mst.setSect_name(sect.getSect_name());
|
StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper<StIvtBsrealstorattr>().eq("stor_id", form.getString("stor_id")));
|
||||||
mst.setStruct_id(stIvtStructivtBcp.getStruct_id());
|
mst.setStor_id(stor.getStor_id());
|
||||||
mst.setStruct_code(stIvtStructivtBcp.getStruct_code());
|
mst.setStor_code(stor.getStor_code());
|
||||||
mst.setStruct_name(stIvtStructivtBcp.getStruct_name());
|
mst.setStor_name(stor.getStor_name());
|
||||||
}
|
StIvtSectattr sect = sectattrService.getById(form.getString("sect_id"));
|
||||||
mst.setCreate_id("1");
|
mst.setSect_code(sect.getSect_code());
|
||||||
mst.setCreate_name("acs");
|
mst.setSect_id(sect.getSect_id());
|
||||||
mst.setCreate_time(DateUtil.now());
|
mst.setSect_name(sect.getSect_name());
|
||||||
PointEvent event = PointEvent.builder()
|
mst.setStruct_id(stIvtStructivtBcp.getStruct_id());
|
||||||
.type(AcsTaskEnum.TASK_STRUCT_OUT)
|
mst.setStruct_code(stIvtStructivtBcp.getStruct_code());
|
||||||
.point_code1(stIvtStructivtBcp.getStruct_code())
|
mst.setStruct_name(stIvtStructivtBcp.getStruct_name());
|
||||||
.point_code3(mst.getPoint_code())
|
}
|
||||||
.acs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode())
|
mst.setCreate_id("1");
|
||||||
.task_group_id(IdUtil.getStringId())
|
mst.setCreate_name("acs");
|
||||||
.extParam(MapOf.of("material_qty",stIvtStructivtBcp.getCanuse_qty(),
|
mst.setCreate_time(DateUtil.now());
|
||||||
"material_id",stIvtStructivtBcp.getMaterial_id()))
|
PointEvent event = PointEvent.builder()
|
||||||
.vehicle_code(mst.getStoragevehicle_code())
|
.type(AcsTaskEnum.TASK_STRUCT_OUT)
|
||||||
.product_area(mst.getWorkshop_id())
|
.point_code1(stIvtStructivtBcp.getStruct_code())
|
||||||
.callback((Consumer<String>) mst::setTask_id)
|
.point_code3(mst.getPoint_code())
|
||||||
.build();
|
.acs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode())
|
||||||
BussEventMulticaster.Publish(event);
|
.task_group_id(IdUtil.getStringId())
|
||||||
mst.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
.extParam(MapOf.of("material_qty",stIvtStructivtBcp.getCanuse_qty(),
|
||||||
mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完"));
|
"material_id",stIvtStructivtBcp.getMaterial_id(),"qtyArr",form.get("qtyArr")))
|
||||||
this.save(mst);
|
.vehicle_code(mst.getStoragevehicle_code())
|
||||||
this.lockStruct(stIvtStructivtBcp.getStruct_code(), "出库锁", mst.getTask_id());
|
.product_area(mst.getWorkshop_id())
|
||||||
sendTask(mst.getTask_id());
|
.callback((Consumer<String>) mst::setTask_id)
|
||||||
}
|
.build();
|
||||||
return stIvtStructivtBcp;
|
BussEventMulticaster.Publish(event);
|
||||||
}, form.getString("material_id"), 1);
|
mst.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
|
||||||
|
mst.setBill_status(IOSEnum.BILL_STATUS.code("分配完"));
|
||||||
|
this.save(mst);
|
||||||
|
this.lockStruct(stIvtStructivtBcp.getStruct_code(), "出库锁", mst.getTask_id());
|
||||||
|
sendTask(mst.getTask_id());
|
||||||
|
return stIvtStructivtBcp;
|
||||||
|
}, form.getString("material_id"), 1);
|
||||||
return bcpStruct;
|
return bcpStruct;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -380,12 +380,13 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl<StIvtIostorinvBcpM
|
|||||||
String status = form.getString("status");
|
String status = form.getString("status");
|
||||||
StIvtIostorinvBcp mst = this.getOne(new QueryWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id));
|
StIvtIostorinvBcp mst = this.getOne(new QueryWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id));
|
||||||
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) {
|
||||||
//完成
|
if (mst!=null || !mst.getBill_status().equals(IOSEnum.BILL_STATUS.code("完成"))){
|
||||||
this.update(new UpdateWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)
|
this.update(new UpdateWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)
|
||||||
.set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("完成")));
|
.set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("完成")));
|
||||||
JSONObject mst_jo = new JSONObject();
|
JSONObject mst_jo = new JSONObject();
|
||||||
mst_jo.put("iostorinv_id", mst.getIostorinv_id());
|
mst_jo.put("iostorinv_id", mst.getIostorinv_id());
|
||||||
this.confirm(mst_jo);
|
this.confirm(mst_jo);
|
||||||
|
}
|
||||||
} else if (status.equals(AcsTaskEnum.STATUS_START.getCode())){
|
} else if (status.equals(AcsTaskEnum.STATUS_START.getCode())){
|
||||||
//执行中
|
//执行中
|
||||||
this.update(new UpdateWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)
|
this.update(new UpdateWrapper<StIvtIostorinvBcp>().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)
|
||||||
|
|||||||
10
mes/hd/nladmin-system/src/main/resources/ 成品初始化.sql
Normal file
10
mes/hd/nladmin-system/src/main/resources/ 成品初始化.sql
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
update st_ivt_structattr
|
||||||
|
set is_used = false,lock_type = false,is_emptyvehicle = false,storagevehicle_code = '',storagevehicle_qty = null,inv_id = null,inv_code = null,inv_type = null
|
||||||
|
where stor_id='1528627995269533696'and sect_id='1528631043496742912'; -- 更新成品库仓位为禁用状态 --
|
||||||
|
delete from st_ivt_structivt_cp; -- 库存表 --
|
||||||
|
delete from st_ivt_iostorinv_cp; -- 出入单主表 --
|
||||||
|
delete from st_ivt_iostorinvdtl_cp; -- 出入库明细表 --
|
||||||
|
delete from st_ivt_iostorinvdis_cp; -- 出入库分配表 --
|
||||||
|
delete from st_ivt_iostorinvdisdtl_cp; -- 出入库分配明细表 --
|
||||||
|
delete from md_pb_bucketrecord; -- 箱记录表 --
|
||||||
|
delete from st_ivt_structivtflow_cp; -- 成品库存变动记录表 --
|
||||||
@@ -176,7 +176,7 @@ export default {
|
|||||||
{ key: true, display_name: '启用' },
|
{ key: true, display_name: '启用' },
|
||||||
{ key: false, display_name: '禁用' }
|
{ key: false, display_name: '禁用' }
|
||||||
],
|
],
|
||||||
materType: '',
|
materType: '01',
|
||||||
materialShow: false,
|
materialShow: false,
|
||||||
pointMVisible: false,
|
pointMVisible: false,
|
||||||
materialForm: {},
|
materialForm: {},
|
||||||
|
|||||||
@@ -127,8 +127,11 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="16">
|
<el-col :span="16">
|
||||||
<el-form-item label="是否启用" prop="is_used">
|
<el-form-item label="是否启用" prop="is_used">
|
||||||
<el-radio v-model="form.is_used" label="0">否</el-radio>
|
<el-switch
|
||||||
<el-radio v-model="form.is_used" label="1">是</el-radio>
|
v-model="form.is_used"
|
||||||
|
active-color="#13ce66"
|
||||||
|
inactive-color="#ff4949"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -153,6 +156,7 @@
|
|||||||
<el-table-column prop="material_model" label="物料型号"/>
|
<el-table-column prop="material_model" label="物料型号"/>
|
||||||
<el-table-column prop="class_name" label="物料分类" width="140"/>
|
<el-table-column prop="class_name" label="物料分类" width="140"/>
|
||||||
<el-table-column prop="unit_name" label="计量单位"/>
|
<el-table-column prop="unit_name" label="计量单位"/>
|
||||||
|
<el-table-column prop="net_weight" label="单重(g)"/>
|
||||||
<el-table-column prop="product_series_name" label="系列"/>
|
<el-table-column prop="product_series_name" label="系列"/>
|
||||||
<el-table-column label="启用" align="center" prop="is_used">
|
<el-table-column label="启用" align="center" prop="is_used">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@@ -160,8 +164,6 @@
|
|||||||
v-model="scope.row.is_used"
|
v-model="scope.row.is_used"
|
||||||
active-color="#409EFF"
|
active-color="#409EFF"
|
||||||
inactive-color="#F56C6C"
|
inactive-color="#F56C6C"
|
||||||
active-value="1"
|
|
||||||
inactive-value="0"
|
|
||||||
@change="changeEnabled(scope.row, scope.row.is_used)"
|
@change="changeEnabled(scope.row, scope.row.is_used)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
@@ -315,6 +317,9 @@ export default {
|
|||||||
this.classes1 = data
|
this.classes1 = data
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
format_isOrNot(row, column, value) {
|
||||||
|
return value === true ? '是' : '否'
|
||||||
|
},
|
||||||
initClass2() {
|
initClass2() {
|
||||||
const param = {
|
const param = {
|
||||||
parent_class_code: '09'
|
parent_class_code: '09'
|
||||||
@@ -393,29 +398,29 @@ export default {
|
|||||||
},
|
},
|
||||||
// 改变状态
|
// 改变状态
|
||||||
changeEnabled(data, val) {
|
changeEnabled(data, val) {
|
||||||
this.$confirm('此操作将 "' + this.dict.label.is_used[val] + '" ' + data.material_name + ', 是否继续?', '提示', {
|
this.$confirm('此操作将修改' + data.material_name + '状态, 是否继续?', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
crudMaterialbase.edit(data).then(res => {
|
crudMaterialbase.edit(data).then(res => {
|
||||||
this.crud.notify(this.dict.label.is_used[val] + '成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
if (data.is_used === '0') {
|
if (data.is_used === false) {
|
||||||
data.is_used = '1'
|
data.is_used = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (data.is_used === '1') {
|
if (data.is_used === true) {
|
||||||
data.is_used = '0'
|
data.is_used = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
if (data.is_used === '0') {
|
if (data.is_used === false) {
|
||||||
data.is_used = '1'
|
data.is_used = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (data.is_used === '1') {
|
if (data.is_used === true) {
|
||||||
data.is_used = '0'
|
data.is_used = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -188,7 +188,6 @@ export default {
|
|||||||
},
|
},
|
||||||
getWorkprocedure() { // 获取工序下拉框
|
getWorkprocedure() { // 获取工序下拉框
|
||||||
crudDevice.getWorkprocedure().then(res => {
|
crudDevice.getWorkprocedure().then(res => {
|
||||||
console.log(res)
|
|
||||||
this.workList = res
|
this.workList = res
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -51,6 +51,16 @@
|
|||||||
class="filter-item"
|
class="filter-item"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="所属工序">
|
||||||
|
<el-select v-model="query.workprocedure_code" filterable clearable size="small" placeholder="所属工序" class="filter-item" style="width: 220px" @change="changeHeader(query.search, query.workprocedure_id)">
|
||||||
|
<el-option
|
||||||
|
v-for="item in workprocedureList"
|
||||||
|
:key="item.workprocedure_code"
|
||||||
|
:label="item.workprocedure_name"
|
||||||
|
:value="item.workprocedure_code"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="设备搜索">
|
<el-form-item label="设备搜索">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="query.device_code"
|
v-model="query.device_code"
|
||||||
@@ -111,16 +121,16 @@
|
|||||||
@change="crud.toQuery"
|
@change="crud.toQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="物料系列">
|
<!-- <el-form-item label="物料系列">-->
|
||||||
<treeselect
|
<!-- <treeselect-->
|
||||||
v-model="query.product_series"
|
<!-- v-model="query.product_series"-->
|
||||||
:options="classes3"
|
<!-- :options="classes3"-->
|
||||||
:auto-load-root-options="false"
|
<!-- :auto-load-root-options="false"-->
|
||||||
:load-options="loadChildNodes"
|
<!-- :load-options="loadChildNodes"-->
|
||||||
style="width: 200px;"
|
<!-- style="width: 200px;"-->
|
||||||
placeholder="请选择"
|
<!-- placeholder="请选择"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="订单检索">
|
<el-form-item label="订单检索">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="query.sale_id"
|
v-model="query.sale_id"
|
||||||
@@ -672,6 +682,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
workprocedureList: [],
|
||||||
zxj: [{ value: 'A1_ZXJ_1', label: '一线1号装箱机' }, { value: 'A1_ZXJ_2', label: '一线2号装箱机' }],
|
zxj: [{ value: 'A1_ZXJ_1', label: '一线1号装箱机' }, { value: 'A1_ZXJ_2', label: '一线2号装箱机' }],
|
||||||
auto_confirm: [{ value: '1', label: '自动确认' }, { value: '2', label: '定时确认' }, { value: '3', label: '人工确认' }],
|
auto_confirm: [{ value: '1', label: '自动确认' }, { value: '2', label: '定时确认' }, { value: '3', label: '人工确认' }],
|
||||||
cxj: [{ value: 'A1_KXJ_1', label: '一线1号拆箱机' }, { value: 'A1_KXJ_1', label: '一线2号拆箱机' }],
|
cxj: [{ value: 'A1_KXJ_1', label: '一线1号拆箱机' }, { value: 'A1_KXJ_1', label: '一线2号拆箱机' }],
|
||||||
@@ -683,7 +694,6 @@ export default {
|
|||||||
addShow: false,
|
addShow: false,
|
||||||
replaceShow: false,
|
replaceShow: false,
|
||||||
uploadShow: false,
|
uploadShow: false,
|
||||||
workprocedureList: [],
|
|
||||||
userList: [],
|
userList: [],
|
||||||
order_status: ['-1'],
|
order_status: ['-1'],
|
||||||
permission: {},
|
permission: {},
|
||||||
|
|||||||
@@ -248,7 +248,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
materialForm: {},
|
materialForm: {},
|
||||||
materType: '',
|
materType: '01',
|
||||||
materialShow: false,
|
materialShow: false,
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
pointMVisible: false,
|
pointMVisible: false,
|
||||||
|
|||||||
@@ -112,6 +112,7 @@ export default {
|
|||||||
mixins: [presenter(), header(), form(defaultForm)],
|
mixins: [presenter(), header(), form(defaultForm)],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
materType:'03',
|
||||||
materialShow: false,
|
materialShow: false,
|
||||||
queryTypeOptions: [
|
queryTypeOptions: [
|
||||||
{ key: 'name', display_name: '字典名称' },
|
{ key: 'name', display_name: '字典名称' },
|
||||||
|
|||||||
Reference in New Issue
Block a user