diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/rest/WCChangeController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/rest/WCChangeController.java new file mode 100644 index 00000000..25b530c7 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/rest/WCChangeController.java @@ -0,0 +1,63 @@ + +package org.nl.wms.pdm.rest; + + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.annotation.Log; +import org.nl.service.LocalStorageService; +import org.nl.wms.pdm.service.DailyplanService; +import org.nl.wms.pdm.service.WCChangeService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Map; + +@RestController +@RequiredArgsConstructor +@Api(tags = "碳化钨总碳修正维护") +@RequestMapping("/api/wcchange") +@Slf4j +public class WCChangeController { + + private final WCChangeService wCChangeService; + + @GetMapping + @Log("查询月生产计划") + @ApiOperation("查询月生产计划") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ + return new ResponseEntity<>(wCChangeService. + queryAll(whereJson,page),HttpStatus.OK); + } + + @PostMapping + @Log("新增工令") + @ApiOperation("新增工令") + public ResponseEntity create(@RequestBody JSONObject json){ + wCChangeService.create(json); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改工令") + @ApiOperation("修改工令") + public ResponseEntity update(@RequestBody JSONObject whereJson){ + wCChangeService.update(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除月生产计划") + @ApiOperation("删除月生产计划") + @DeleteMapping + public ResponseEntity delete(@RequestBody Long[] ids) { + wCChangeService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/WCChangeService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/WCChangeService.java new file mode 100644 index 00000000..17a0031d --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/WCChangeService.java @@ -0,0 +1,59 @@ + +package org.nl.wms.pdm.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.pcs.service.dto.ProductplanprocDto; +import org.springframework.data.domain.Pageable; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Map; + +/** +* @description 服务接口 +* @author Liuxy +* @date 2021-12-13 +**/ +public interface WCChangeService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param page 分页参数 + * @return Map + */ + Map queryAll(Map whereJson, Pageable page); + /** + * 创建 + * @param json / + */ + void create(JSONObject json); + + /** + * 根据ID查询 + * @param plan_id ID + * @return Productplanproc + */ + ProductplanprocDto findById(Long plan_id); + + /** + * 根据编码查询 + * @param code code + * @return Productplanproc + */ + ProductplanprocDto findByCode(String code); + + /** + * 编辑 + * @param whereJson / + */ + void update(JSONObject whereJson); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Long[] ids); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WCChangeServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WCChangeServiceImpl.java new file mode 100644 index 00000000..f9e7eb2d --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WCChangeServiceImpl.java @@ -0,0 +1,128 @@ + +package org.nl.wms.pdm.service.impl; + + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.exception.BadRequestException; +import org.nl.modules.security.service.dto.JwtUserDto; +import org.nl.modules.system.util.CodeUtil; +import org.nl.utils.FileUtil; +import org.nl.utils.SecurityUtils; +import org.nl.wms.basedata.master.service.MaterialbaseService; +import org.nl.wms.pcs.service.dto.ProductplanprocDto; +import org.nl.wms.pdm.service.DailyplanService; +import org.nl.wms.pdm.service.WCChangeService; +import org.nl.wms.pdm.service.WorkOrdereService; +import org.nl.wql.WQL; +import org.nl.wql.core.bean.WQLObject; +import org.nl.wql.util.WqlUtil; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.*; + + +@Service +@RequiredArgsConstructor +@Slf4j +public class WCChangeServiceImpl implements WCChangeService { + + @Override + public Map queryAll(Map whereJson, Pageable page) { + HashMap map = new HashMap<>(whereJson); + + String material_code = map.get("material_code"); + if (StrUtil.isNotEmpty(material_code)) { + map.put("material_code", "%" + material_code + "%"); + } + String supp_code = map.get("supp_code"); + if (StrUtil.isNotEmpty(supp_code)) { + map.put("supp_code", "%" + supp_code + "%"); + } + map.put("flag", "1"); + JSONObject jret = WQL.getWO("QPDM_WCCHANGE").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "pp.create_time"); + return jret; + } + + + @Override + public ProductplanprocDto findById(Long plan_id) { + WQLObject wo = WQLObject.getWQLObject("pcs_if_productplanproc"); + JSONObject json = wo.query("plan_id =" + plan_id + "").uniqueResult(0); + final ProductplanprocDto obj = json.toJavaObject(ProductplanprocDto.class); + return obj; + } + + @Override + public ProductplanprocDto findByCode(String code) { + WQLObject wo = WQLObject.getWQLObject("pcs_if_productplanproc"); + JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0); + final ProductplanprocDto obj = json.toJavaObject(ProductplanprocDto.class); + return obj; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(JSONObject json) { + Long currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getNickName(); + String now = DateUtil.now(); + JwtUserDto currentUser = (JwtUserDto) SecurityUtils.getCurrentUser(); + Long deptId = currentUser.getDeptId(); + WQLObject PDM_BI_SuppWCChange = WQLObject.getWQLObject("PDM_BI_SuppWCChange"); // 工艺路线主表 + JSONObject mater = PDM_BI_SuppWCChange.query("material_id='"+json.getString("material_id")+"' and supp_id='"+json.getString("supp_id")+"'").uniqueResult(0); + if(mater != null){ + throw new BadRequestException("已存在相同物料和供应商的记录"); + } + + // 插入主表 + json.put("change_id", IdUtil.getSnowflake(1, 1).nextId()); + json.put("create_id", currentUserId); + json.put("create_name", nickName); + json.put("create_time", now); + + PDM_BI_SuppWCChange.insert(json); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(JSONObject json) { + Long currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getNickName(); + String now = DateUtil.now(); + + WQLObject PDM_BI_SuppWCChange = WQLObject.getWQLObject("PDM_BI_SuppWCChange"); // 工艺路线主表 + JSONObject mater = PDM_BI_SuppWCChange.query("material_id='"+json.getString("material_id")+"' and supp_id='"+json.getString("supp_id")+"'").uniqueResult(0); + if(mater != null){ + if(!json.getString("change_id").equals(mater.getString("change_id"))){ + throw new BadRequestException("已存在相同物料和供应商的记录"); + } + } + + json.put("update_optid", currentUserId); + json.put("update_optname", nickName); + json.put("update_time", now); + PDM_BI_SuppWCChange.update(json); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(Long[] ids) { + WQLObject PDM_BI_SuppWCChange = WQLObject.getWQLObject("PDM_BI_SuppWCChange"); // 工艺路线主表 + + for (Long change_id : ids) { + PDM_BI_SuppWCChange.delete("change_id='"+change_id+"'"); + } + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/QPDM_WCCHANGE.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/QPDM_WCCHANGE.wql new file mode 100644 index 00000000..f41e7ef1 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/QPDM_WCCHANGE.wql @@ -0,0 +1,67 @@ +[交易说明] + 交易名: 月度计划分页查询 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.material_code TYPEAS s_string + 输入.supp_code TYPEAS s_string + + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + SELECT + pp.*, + materialbase.material_code, + materialbase.material_name + FROM + PDM_BI_SuppWCChange pp + LEFT JOIN md_me_materialbase materialbase ON pp.material_id = materialbase.material_id + WHERE + 1=1 + OPTION 输入.material_code <> "" + (materialbase.material_code like 输入.material_code or materialbase.material_name like 输入.material_code) + ENDOPTION + OPTION 输入.supp_code <> "" + (pp.supp_code like 输入.supp_code or pp.supp_name like 输入.supp_code) + ENDOPTION + ENDSELECT + ENDPAGEQUERY + ENDIF + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls index b22da91b..ffbca44b 100644 Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls differ diff --git a/mes/qd/src/api/wms/pdm/wcchange.js b/mes/qd/src/api/wms/pdm/wcchange.js new file mode 100644 index 00000000..5d0fa3a5 --- /dev/null +++ b/mes/qd/src/api/wms/pdm/wcchange.js @@ -0,0 +1,64 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/wcchange', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/wcchange/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/wcchange', + method: 'put', + data + }) +} + +export function submit(data) { + return request({ + url: 'api/wcchange/submit', + method: 'post', + data + }) +} + +export function openWork(data) { + return request({ + url: 'api/wcchange/openWork', + method: 'post', + data + }) +} + +export function confirmWork(data) { + return request({ + url: 'api/wcchange/confirmWork', + method: 'post', + data + }) +} +export function createPcsn(params) { + return request({ + url: 'api/wcchange/createPcsn', + method: 'get', + params + }) +} +export function getDepts(params) { + return request({ + url: 'api/wcchange/getDepts', + method: 'get', + params + }) +} +export default { add, edit, del, submit, confirmWork, openWork, createPcsn, getDepts } diff --git a/mes/qd/src/views/wms/pdm/base/wcchange/AddDialog.vue b/mes/qd/src/views/wms/pdm/base/wcchange/AddDialog.vue new file mode 100644 index 00000000..4072cc51 --- /dev/null +++ b/mes/qd/src/views/wms/pdm/base/wcchange/AddDialog.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/mes/qd/src/views/wms/pdm/base/wcchange/index.vue b/mes/qd/src/views/wms/pdm/base/wcchange/index.vue new file mode 100644 index 00000000..61056660 --- /dev/null +++ b/mes/qd/src/views/wms/pdm/base/wcchange/index.vue @@ -0,0 +1,169 @@ + + + + diff --git a/mes/qd/src/views/wms/pub/SuppDialog.vue b/mes/qd/src/views/wms/pub/SuppDialog.vue new file mode 100644 index 00000000..a0f82e11 --- /dev/null +++ b/mes/qd/src/views/wms/pub/SuppDialog.vue @@ -0,0 +1,140 @@ + + + +