hmc пре 7 месеци
родитељ
комит
a062b3d8fa
21 измењених фајлова са 2072 додато и 72 уклоњено
  1. 0 12
      bin/clean.bat
  2. 0 12
      bin/package.bat
  3. 0 14
      bin/run.bat
  4. 9 4
      zkqy-admin/src/main/resources/application-druid.yml
  5. 7 7
      zkqy-admin/src/main/resources/application.yml
  6. 0 0
      zkqy-admin/src/main/resources/lib/DmJdbcDriver18.jar
  7. 46 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/controller/JdBomGroupController.java
  8. 27 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/controller/JdMaterialInfoController.java
  9. 34 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/controller/JdProductionBomsController.java
  10. 121 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/controller/JdProductionOrderController.java
  11. 62 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdBomGroupVo.java
  12. 426 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdBomVersionDetailVo.java
  13. 219 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdBomVersionListVo.java
  14. 370 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdMaterialInfoVo.java
  15. 477 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdProductionBomsDetailsVo.java
  16. 78 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/mapper/JdProductionOrderMapper.java
  17. 23 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/JdBomGroupService.java
  18. 17 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/JdProductionBomsService.java
  19. 147 0
      zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/impl/JdBomGroupServiceImpl.java
  20. 9 11
      zkqy-ui/.env.production
  21. 0 12
      zkqy-ui/bin/package.bat

+ 0 - 12
bin/clean.bat

@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [信息] 清理工程target生成路径。
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-call mvn clean
-
-pause

+ 0 - 12
bin/package.bat

@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [信息] 打包Web工程,生成war/jar包文件。
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-call mvn clean package -Dmaven.test.skip=true
-
-pause

+ 0 - 14
bin/run.bat

@@ -1,14 +0,0 @@
-@echo off
-echo.
-echo [信息] 使用Jar命令运行Web工程。
-echo.
-
-cd %~dp0
-cd ../ruoyi-admin/target
-
-set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
-
-java -jar %JAVA_OPTS% ruoyi-admin.jar
-
-cd bin
-pause

+ 9 - 4
zkqy-admin/src/main/resources/application-druid.yml

@@ -4,11 +4,16 @@ spring:
         type: com.alibaba.druid.pool.DruidDataSource
         driverClassName: com.mysql.cj.jdbc.Driver
         druid:
-            # 主库数据源
+            # 主库数据源 http:///
             master:
-                url: jdbc:mysql://192.168.110.15:3306/ry-vue-call?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://localhost:3306/ry-vue-call?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
+                #url: jdbc:mysql://192.168.110.15:3306/ry-vue-call?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
+                #url: jdbc:mysql://121.37.234.37:3306/zkqyzk?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true
                 username: root
-                password: zkqy8888
+                #password: zkqy8888
+#                password: quanyi666
+                password: root
+                #password: zkqy@8888888
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭
@@ -21,7 +26,7 @@ spring:
             # 最小连接池数量
             minIdle: 10
             # 最大连接池数量
-            maxActive: 20
+            maxActive: 60
             # 配置获取连接等待超时的时间
             maxWait: 60000
             # 配置连接超时时间

+ 7 - 7
zkqy-admin/src/main/resources/application.yml

@@ -9,7 +9,7 @@ zkqy:
   # 实例演示开关
   demoEnabled: true
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
-  profile: /Users/zrwj/Desktop/ZKQY_LJJ/log
+  profile: D:/zkqy/uploadPath
   # 获取ip地址开关
   addressEnabled: false
   # 验证码类型 math 数组计算 char 字符验证
@@ -79,13 +79,13 @@ spring:
   # redis 配置
   redis:
     # 地址
-    host: 192.168.110.15
+    host: 121.37.234.37
     # 端口,默认为6379
     port: 6379
     # 数据库索引
-    database: 1
+    database: 10
     # 密码
-    password:
+    password: zkqy@8888888
     # 连接超时时间
     timeout: 10s
     lettuce:
@@ -192,10 +192,10 @@ projectDownloadZip:
 OpenAuthorization2:
   MES:
     # 单点获取code、token、userinfo主机地址
-    URL: http://192.168.110.129:8066/oauth2
+    URL: http://192.168.2.127:8066/oauth2
     # 系统标识
     BASIC: mes
     # 重定向本系统主机地址
-    REDIRECT_URL: http://192.168.110.129:1025
+    REDIRECT_URL: http://192.168.2.127:1025
     # 回调地址
-    CALLBACK: http://192.168.110.129:8066/oauth/callback
+    CALLBACK: http://192.168.2.127:8066/oauth/callback

+ 0 - 0
zkqy-admin/src/main/resources/lib/DmJdbcDriver18.jar


+ 46 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/controller/JdBomGroupController.java

@@ -0,0 +1,46 @@
+package com.zkqy.amichi.jd.controller;
+
+import com.zkqy.amichi.jd.domain.JdProductionOrder;
+import com.zkqy.amichi.jd.service.JdBomGroupService;
+import com.zkqy.common.annotation.Anonymous;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RestController
+@RequestMapping("/JdBomGroupController/BomGroup")
+public class JdBomGroupController extends  BaseController{
+
+    @Autowired
+    JdBomGroupService jdBomGroupService;
+
+    @Anonymous
+    @GetMapping("/JdBomGroupPull")
+    public AjaxResult JdBomGroupPull()
+    {
+        AjaxResult list = jdBomGroupService.jdBomGroupPull();
+        return list;
+    }
+
+
+    @Anonymous
+    @GetMapping("/jdBomGroupVersionInfoPull")
+    public AjaxResult jdBomGroupVersionInfoPull()
+    {
+        AjaxResult list = jdBomGroupService.jdBomGroupVersionInfoPull();
+        return list;
+    }
+
+    @Anonymous
+    @GetMapping("/jdBomVersionDetailInfoPull")
+    public AjaxResult jdBomVersionDetailInfoPull()
+    {
+        String fCode="1010010020001";
+        AjaxResult list = jdBomGroupService.jdBomVersionDetailInfoPull(fCode);
+        return list;
+    }
+}

+ 27 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/controller/JdMaterialInfoController.java

@@ -0,0 +1,27 @@
+package com.zkqy.amichi.jd.controller;
+
+
+import com.zkqy.amichi.jd.service.JdMaterialInfoService;
+import com.zkqy.amichi.jd.service.JdProductionBomsService;
+import com.zkqy.common.annotation.Anonymous;
+import com.zkqy.common.core.domain.AjaxResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/JdMaterialInfo")
+public class JdMaterialInfoController{
+    @Autowired
+    JdMaterialInfoService jdMaterialInfoService;
+
+    @Anonymous
+    @GetMapping("/pullMaterialInfoJustStores")
+    public AjaxResult pullMaterialInfoJustStores()
+    {
+        AjaxResult list = jdMaterialInfoService.pullMaterialInfoJustStores();
+        return list;
+    }
+
+}

+ 34 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/controller/JdProductionBomsController.java

@@ -0,0 +1,34 @@
+package com.zkqy.amichi.jd.controller;
+
+import com.zkqy.amichi.jd.service.JdProductionBomsService;
+import com.zkqy.common.annotation.Anonymous;
+import com.zkqy.common.core.domain.AjaxResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/JdProductionBomsController/Boms")
+public class JdProductionBomsController {
+    @Autowired
+    JdProductionBomsService productionBomsService;
+
+    @Anonymous
+    @GetMapping("/JdBomGroupPull")
+    public AjaxResult JdBomGroupPull()
+    {
+        AjaxResult list = productionBomsService.jdProductionBomsPull();
+        return list;
+    }
+
+
+
+    @Anonymous
+    @GetMapping("/jdProductionBomsDetailsPull")
+    public AjaxResult jdProductionBomsDetailsPull()
+    {
+        AjaxResult list = productionBomsService.jdProductionBomsDetailsPull();
+        return list;
+    }
+}

+ 121 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/controller/JdProductionOrderController.java

@@ -0,0 +1,121 @@
+package com.zkqy.amichi.jd.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.zkqy.common.annotation.Anonymous;
+import com.zkqy.common.annotation.Log;
+import com.zkqy.common.core.controller.BaseController;
+import com.zkqy.common.core.domain.AjaxResult;
+import com.zkqy.common.core.page.TableDataInfo;
+import com.zkqy.common.enums.BusinessType;
+import com.zkqy.common.utils.poi.ExcelUtil;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.zkqy.amichi.jd.domain.JdProductionOrder;
+import com.zkqy.amichi.jd.service.JdProductionOrderService;
+
+
+/**
+ * 金蝶-生产订单信息Controller
+ * 
+ * @author ruoyi
+ * @date 2024-10-12
+ */
+@RestController
+@RequestMapping("/jdProductionOrder/order")
+public class JdProductionOrderController extends BaseController
+{
+
+    @Autowired
+    private JdProductionOrderService jdProductionOrderService;
+
+    /**
+     * 查询金蝶-生产订单信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('jdProductionOrder:order:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(JdProductionOrder jdProductionOrder)
+    {
+        startPage();
+        List<JdProductionOrder> list = jdProductionOrderService.selectJdProductionOrderList(jdProductionOrder);
+        return getDataTable(list);
+    }
+
+    /**
+     * 拉取最新的订单数据
+     */
+//    @PreAuthorize("@ss.hasPermi('jdProductionOrder:order:list')")
+    @Anonymous
+    @GetMapping("/jdProductionOrderPull")
+    public AjaxResult jdProductionOrderPull(JdProductionOrder jdProductionOrder)
+    {
+        AjaxResult list = jdProductionOrderService.jdProductionOrderPull(jdProductionOrder);
+        return list;
+    }
+
+    /**
+     * 导出金蝶-生产订单信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('jdProductionOrder:order:export')")
+    @Log(title = "金蝶-生产订单信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, JdProductionOrder jdProductionOrder)
+    {
+        List<JdProductionOrder> list = jdProductionOrderService.selectJdProductionOrderList(jdProductionOrder);
+        ExcelUtil<JdProductionOrder> util = new ExcelUtil<JdProductionOrder>(JdProductionOrder.class);
+        util.exportExcel(response, list, "金蝶-生产订单信息数据");
+    }
+
+    /**
+     * 获取金蝶-生产订单信息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('jdProductionOrder:order:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(jdProductionOrderService.selectJdProductionOrderById(id));
+    }
+
+    /**
+     * 新增金蝶-生产订单信息
+     */
+    @PreAuthorize("@ss.hasPermi('jdProductionOrder:order:add')")
+    @Log(title = "金蝶-生产订单信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody JdProductionOrder jdProductionOrder)
+    {
+        return toAjax(jdProductionOrderService.insertJdProductionOrder(jdProductionOrder));
+    }
+
+    /**
+     * 修改金蝶-生产订单信息
+     */
+    @PreAuthorize("@ss.hasPermi('jdProductionOrder:order:edit')")
+    @Log(title = "金蝶-生产订单信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody JdProductionOrder jdProductionOrder)
+    {
+        return toAjax(jdProductionOrderService.updateJdProductionOrder(jdProductionOrder));
+    }
+
+    /**
+     * 删除金蝶-生产订单信息
+     */
+    @PreAuthorize("@ss.hasPermi('jdProductionOrder:order:remove')")
+    @Log(title = "金蝶-生产订单信息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(jdProductionOrderService.deleteJdProductionOrderByIds(ids));
+    }
+}

+ 62 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdBomGroupVo.java

@@ -0,0 +1,62 @@
+package com.zkqy.amichi.jd.domain;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.zkqy.common.core.domain.BaseEntity;
+
+public class JdBomGroupVo  extends BaseEntity {
+
+    @JSONField(name="fid")
+    private  Long  id;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    @JSONField(name="FNumber")
+    private   String  fNumber;
+
+    @JSONField(name="FNAME")
+    private  String fName;
+
+    @JSONField(name="FParentId")
+    private  String fParentId;
+
+    public String getfNumber() {
+        return fNumber;
+    }
+
+    /** 删除标志(0代表存在 1代表删除) */
+    private String delFlag;
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public void setfNumber(String fNumber) {
+        this.fNumber = fNumber;
+    }
+
+    public String getfName() {
+        return fName;
+    }
+
+    public void setfName(String fName) {
+        this.fName = fName;
+    }
+
+    public String getfParentId() {
+        return fParentId;
+    }
+
+    public void setfParentId(String fParentId) {
+        this.fParentId = fParentId;
+    }
+}

+ 426 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdBomVersionDetailVo.java

@@ -0,0 +1,426 @@
+package com.zkqy.amichi.jd.domain;
+
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.zkqy.common.annotation.Excel;
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.math.BigDecimal;
+
+/**
+ * bom明细对象 bom_version_detail
+ * 
+ * @author ruoyi
+ * @date 2024-10-15
+ */
+public class JdBomVersionDetailVo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 子项物料编号 */
+    @Excel(name = "子项物料编号")
+    @JSONField(name = "FMATERIALIDCHILD.FNumber")
+    private String fmaterialidchildFnumber;
+
+    /** 子项物料名称 */
+    @Excel(name = "子项物料名称")
+    @JSONField(name = "FCHILDITEMNAME")
+    private String fchilditemname;
+
+    /** 规格 */
+    @Excel(name = "规格")
+    @JSONField(name = "FITEMMODEL")
+    private String fchilditemmodel;
+
+    /** 型号 */
+    @Excel(name = "型号")
+    @JSONField(name = "F.PONP.xinghao")
+    private String fPonpXinghao;
+
+    /** 物料属性 */
+    @Excel(name = "物料属性")
+    @JSONField(name = "FITEMPPROPERTY")
+    private String fitempproperty;
+
+    /** 供应类型 */
+    @Excel(name = "供应类型")
+    @JSONField(name = "FSupplyType")
+    private String fsupplytype;
+
+    /** 子项类型 */
+    @Excel(name = "子项类型")
+    @JSONField(name = "FMATERIALTYPE")
+    private String fmaterialtype;
+
+    /** 作业名称 */
+    @Excel(name = "作业名称")
+    @JSONField(name = "FPROCESSID.FName")
+    private String fprocessidFname;
+
+    /** 作业编码 */
+    @Excel(name = "作业编码")
+    @JSONField(name = "FPROCESSID.FNumber")
+    private String fprocessidFnumber;
+
+    /** 单位 */
+    @Excel(name = "单位")
+    @JSONField(name = "FCHILDUNITID.FName")
+    private String fchildunitidFname;
+
+    /** 用量类型 */
+    @Excel(name = "用量类型")
+    @JSONField(name = "FDOSAGETYPE")
+    private String fdosagetype;
+
+    /** 分子 */
+    @Excel(name = "分子")
+    @JSONField(name = "FNUMERATOR")
+    private BigDecimal fnumerator;
+
+    /** 分母 */
+    @Excel(name = "分母")
+    @JSONField(name = "FDENOMINATOR")
+    private BigDecimal fdenominator;
+
+    /** 固定损耗 */
+    @Excel(name = "固定损耗")
+    @JSONField(name = "FFIXSCRAPQTY")
+    private BigDecimal ffixscrapqty;
+
+    /** 变动损耗率 */
+    @Excel(name = "变动损耗率")
+    @JSONField(name = "FSCRAPRATE")
+    private BigDecimal fscraprate;
+
+    /** 供应组织id */
+    @Excel(name = "供应组织id")
+    @JSONField(name = "FCHILDSUPPLYORGID")
+    private Long fchildsupplyorgid;
+
+    /** 子项bom版本 */
+    @Excel(name = "子项bom版本")
+    @JSONField(name="FCHILDSUPPLYORGID")
+    private String fbomidFnumber;
+
+    /** 子项产品模型 */
+    @Excel(name = "子项产品模型")
+    @JSONField(name="FSubMdlId")
+    private Long fsubmdlid;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    @JSONField(name="FMEMO")
+    private String fmemo;
+
+    /** 发料组织 */
+    @Excel(name = "发料组织")
+    @JSONField(name="FSUPPLYORG")
+    private String fsupplyorg;
+
+    /** 默认发料仓库 */
+    @Excel(name = "默认发料仓库")
+    @JSONField(name="FSTOCKID")
+    private Long fstockid;
+
+    /** 发料方式 */
+    @Excel(name = "发料方式")
+    @JSONField(name="FISSUETYPE")
+    private String fissuetype;
+
+    /** 是否跳层 */
+    @Excel(name = "是否跳层")
+    @JSONField(name="FISSkip")
+    private Integer fisskip;
+
+    /** 可替换 */
+    @Excel(name = "可替换")
+    @JSONField(name="FIsCanReplace")
+    private Integer fiscanreplace;
+
+    /** 净需求比例 */
+    @Excel(name = "净需求比例")
+    @JSONField(name="FNETDEMANDRATE")
+    private BigDecimal fnetdemandrate;
+
+    public String getParentMaterialCode() {
+        return parentMaterialCode;
+    }
+
+    public void setParentMaterialCode(String parentMaterialCode) {
+        this.parentMaterialCode = parentMaterialCode;
+    }
+
+    private  String parentMaterialCode;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setFmaterialidchildFnumber(String fmaterialidchildFnumber) 
+    {
+        this.fmaterialidchildFnumber = fmaterialidchildFnumber;
+    }
+
+    public String getFmaterialidchildFnumber() 
+    {
+        return fmaterialidchildFnumber;
+    }
+    public void setFchilditemname(String fchilditemname) 
+    {
+        this.fchilditemname = fchilditemname;
+    }
+
+    public String getFchilditemname() 
+    {
+        return fchilditemname;
+    }
+    public void setFchilditemmodel(String fchilditemmodel) 
+    {
+        this.fchilditemmodel = fchilditemmodel;
+    }
+
+    public String getFchilditemmodel() 
+    {
+        return fchilditemmodel;
+    }
+    public void setfPonpXinghao(String fPonpXinghao) 
+    {
+        this.fPonpXinghao = fPonpXinghao;
+    }
+
+    public String getfPonpXinghao() 
+    {
+        return fPonpXinghao;
+    }
+    public void setFitempproperty(String fitempproperty) 
+    {
+        this.fitempproperty = fitempproperty;
+    }
+
+    public String getFitempproperty() 
+    {
+        return fitempproperty;
+    }
+    public void setFsupplytype(String fsupplytype) 
+    {
+        this.fsupplytype = fsupplytype;
+    }
+
+    public String getFsupplytype() 
+    {
+        return fsupplytype;
+    }
+    public void setFmaterialtype(String fmaterialtype) 
+    {
+        this.fmaterialtype = fmaterialtype;
+    }
+
+    public String getFmaterialtype() 
+    {
+        return fmaterialtype;
+    }
+    public void setFprocessidFname(String fprocessidFname) 
+    {
+        this.fprocessidFname = fprocessidFname;
+    }
+
+    public String getFprocessidFname() 
+    {
+        return fprocessidFname;
+    }
+    public void setFprocessidFnumber(String fprocessidFnumber) 
+    {
+        this.fprocessidFnumber = fprocessidFnumber;
+    }
+
+    public String getFprocessidFnumber() 
+    {
+        return fprocessidFnumber;
+    }
+    public void setFchildunitidFname(String fchildunitidFname) 
+    {
+        this.fchildunitidFname = fchildunitidFname;
+    }
+
+    public String getFchildunitidFname() 
+    {
+        return fchildunitidFname;
+    }
+    public void setFdosagetype(String fdosagetype) 
+    {
+        this.fdosagetype = fdosagetype;
+    }
+
+    public String getFdosagetype() 
+    {
+        return fdosagetype;
+    }
+    public void setFnumerator(BigDecimal fnumerator) 
+    {
+        this.fnumerator = fnumerator;
+    }
+
+    public BigDecimal getFnumerator() 
+    {
+        return fnumerator;
+    }
+    public void setFdenominator(BigDecimal fdenominator) 
+    {
+        this.fdenominator = fdenominator;
+    }
+
+    public BigDecimal getFdenominator() 
+    {
+        return fdenominator;
+    }
+    public void setFfixscrapqty(BigDecimal ffixscrapqty) 
+    {
+        this.ffixscrapqty = ffixscrapqty;
+    }
+
+    public BigDecimal getFfixscrapqty() 
+    {
+        return ffixscrapqty;
+    }
+    public void setFscraprate(BigDecimal fscraprate) 
+    {
+        this.fscraprate = fscraprate;
+    }
+
+    public BigDecimal getFscraprate() 
+    {
+        return fscraprate;
+    }
+    public void setFchildsupplyorgid(Long fchildsupplyorgid) 
+    {
+        this.fchildsupplyorgid = fchildsupplyorgid;
+    }
+
+    public Long getFchildsupplyorgid() 
+    {
+        return fchildsupplyorgid;
+    }
+    public void setFbomidFnumber(String fbomidFnumber) 
+    {
+        this.fbomidFnumber = fbomidFnumber;
+    }
+
+    public String getFbomidFnumber() 
+    {
+        return fbomidFnumber;
+    }
+    public void setFsubmdlid(Long fsubmdlid) 
+    {
+        this.fsubmdlid = fsubmdlid;
+    }
+
+    public Long getFsubmdlid() 
+    {
+        return fsubmdlid;
+    }
+    public void setFmemo(String fmemo) 
+    {
+        this.fmemo = fmemo;
+    }
+
+    public String getFmemo() 
+    {
+        return fmemo;
+    }
+    public void setFsupplyorg(String fsupplyorg) 
+    {
+        this.fsupplyorg = fsupplyorg;
+    }
+
+    public String getFsupplyorg() 
+    {
+        return fsupplyorg;
+    }
+    public void setFstockid(Long fstockid) 
+    {
+        this.fstockid = fstockid;
+    }
+
+    public Long getFstockid() 
+    {
+        return fstockid;
+    }
+    public void setFissuetype(String fissuetype) 
+    {
+        this.fissuetype = fissuetype;
+    }
+
+    public String getFissuetype() 
+    {
+        return fissuetype;
+    }
+    public void setFisskip(Integer fisskip) 
+    {
+        this.fisskip = fisskip;
+    }
+
+    public Integer getFisskip() 
+    {
+        return fisskip;
+    }
+    public void setFiscanreplace(Integer fiscanreplace) 
+    {
+        this.fiscanreplace = fiscanreplace;
+    }
+
+    public Integer getFiscanreplace() 
+    {
+        return fiscanreplace;
+    }
+    public void setFnetdemandrate(BigDecimal fnetdemandrate) 
+    {
+        this.fnetdemandrate = fnetdemandrate;
+    }
+
+    public BigDecimal getFnetdemandrate() 
+    {
+        return fnetdemandrate;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("fmaterialidchildFnumber", getFmaterialidchildFnumber())
+            .append("fchilditemname", getFchilditemname())
+            .append("fchilditemmodel", getFchilditemmodel())
+            .append("fPonpXinghao", getfPonpXinghao())
+            .append("fitempproperty", getFitempproperty())
+            .append("fsupplytype", getFsupplytype())
+            .append("fmaterialtype", getFmaterialtype())
+            .append("fprocessidFname", getFprocessidFname())
+            .append("fprocessidFnumber", getFprocessidFnumber())
+            .append("fchildunitidFname", getFchildunitidFname())
+            .append("fdosagetype", getFdosagetype())
+            .append("fnumerator", getFnumerator())
+            .append("fdenominator", getFdenominator())
+            .append("ffixscrapqty", getFfixscrapqty())
+            .append("fscraprate", getFscraprate())
+            .append("fchildsupplyorgid", getFchildsupplyorgid())
+            .append("fbomidFnumber", getFbomidFnumber())
+            .append("fsubmdlid", getFsubmdlid())
+            .append("fmemo", getFmemo())
+            .append("fsupplyorg", getFsupplyorg())
+            .append("fstockid", getFstockid())
+            .append("fissuetype", getFissuetype())
+            .append("fisskip", getFisskip())
+            .append("fiscanreplace", getFiscanreplace())
+            .append("fnetdemandrate", getFnetdemandrate())
+            .toString();
+    }
+}

+ 219 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdBomVersionListVo.java

@@ -0,0 +1,219 @@
+package com.zkqy.amichi.jd.domain;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.zkqy.common.annotation.Excel;
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+
+/**
+ * BOM版本信息对象 bom_version_list
+ * 
+ * @author ruoyi
+ * @date 2024-10-14
+ */
+public class JdBomVersionListVo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 分组编号 */
+    @Excel(name = "分组编号")
+    @JSONField(name = "FGroup.FNumber")
+    private String groupNumber;
+
+    /** bom版本 */
+    @Excel(name = "bom版本")
+    @JSONField(name = "FNUMBER")
+    private String fNumber;
+
+    /** 简称 */
+    @Excel(name = "简称")
+    @JSONField(name = "FNAME")
+    private String fName;
+
+    /** 分类 */
+    @Excel(name = "分类")
+    @JSONField(name = "FBOMCATEGORY")
+    private String fBomcategory;
+
+    /** 父项物料编码 */
+    @Excel(name = "父项物料编码")
+    @JSONField(name = "FMATERIALID.FNumber")
+    private String fMaterialId;
+
+    /** 父项物料名称 */
+    @Excel(name = "父项物料名称")
+    @JSONField(name = "FITEMNAME")
+    private String fMaterialName;
+
+    /** 型号 */
+    @Excel(name = "型号")
+    @JSONField(name = "FITEMMODEL")
+    private String fMaterialModel;
+
+    /** 描述 */
+    @Excel(name = "描述")
+    @JSONField(name = "FDESCRIPTION")
+    private String fDescription;
+
+    /** 数据状态 */
+    @Excel(name = "数据状态")
+    @JSONField(name = "FDocumentStatus")
+    private String fDocumentStatus;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setGroupNumber(String groupNumber) 
+    {
+        this.groupNumber = groupNumber;
+    }
+
+    public String getGroupNumber() 
+    {
+        return groupNumber;
+    }
+    public void setfNumber(String fNumber) 
+    {
+        this.fNumber = fNumber;
+    }
+
+    public String getfNumber() 
+    {
+        return fNumber;
+    }
+    public void setfName(String fName) 
+    {
+        this.fName = fName;
+    }
+
+    public String getfName() 
+    {
+        return fName;
+    }
+    public void setfBomcategory(String fBomcategory) 
+    {
+        this.fBomcategory = fBomcategory;
+    }
+
+    public String getfBomcategory() 
+    {
+        return fBomcategory;
+    }
+    public void setfMaterialId(String fMaterialId) 
+    {
+        this.fMaterialId = fMaterialId;
+    }
+
+    public String getfMaterialId() 
+    {
+        return fMaterialId;
+    }
+    public void setfMaterialName(String fMaterialName) 
+    {
+        this.fMaterialName = fMaterialName;
+    }
+
+    public String getfMaterialName() 
+    {
+        return fMaterialName;
+    }
+    public void setfMaterialModel(String fMaterialModel) 
+    {
+        this.fMaterialModel = fMaterialModel;
+    }
+
+    public String getfMaterialModel() 
+    {
+        return fMaterialModel;
+    }
+    public void setfDescription(String fDescription) 
+    {
+        this.fDescription = fDescription;
+    }
+
+    public String getfDescription() 
+    {
+        return fDescription;
+    }
+    public void setfDocumentStatus(String fDocumentStatus) 
+    {
+        this.fDocumentStatus = fDocumentStatus;
+    }
+
+    public String getfDocumentStatus() 
+    {
+        return fDocumentStatus;
+    }
+    public void setCreateById(Long createById) 
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById() 
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById) 
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById() 
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("groupNumber", getGroupNumber())
+            .append("fNumber", getfNumber())
+            .append("fName", getfName())
+            .append("fBomcategory", getfBomcategory())
+            .append("fMaterialId", getfMaterialId())
+            .append("fMaterialName", getfMaterialName())
+            .append("fMaterialModel", getfMaterialModel())
+            .append("fDescription", getfDescription())
+            .append("fDocumentStatus", getfDocumentStatus())
+            .append("createById", getCreateById())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateById", getUpdateById())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("delFlag", getDelFlag())
+            .toString();
+    }
+}

+ 370 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdMaterialInfoVo.java

@@ -0,0 +1,370 @@
+package com.zkqy.amichi.jd.domain;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.zkqy.common.annotation.Excel;
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+
+/**
+ * 物料及时库存对象 materialinfo
+ *
+ * @author ruoyi
+ * @date 2024-10-17
+ */
+public class JdMaterialInfoVo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 物料编码 */
+    @Excel(name = "物料编码")
+    @JSONField(name="FMaterialId.FNumber")
+    private String materialCode;
+
+    /** 物料名称 */
+    @Excel(name = "物料名称")
+    @JSONField(name="FMaterialName")
+    private String materialName;
+
+    /** 规格 */
+    @Excel(name = "规格")
+    @JSONField(name="FModel")
+    private String specification;
+
+    /** 型号 */
+    @Excel(name = "型号")
+    @JSONField(name="FModel1")
+    private String model;
+
+    /** 图号 */
+    @Excel(name = "图号")
+    @JSONField(name="F.PONP.uHao")
+    private String mapNumber;
+
+    /** 描述 */
+    @Excel(name = "描述")
+    @JSONField(name="F.PONP.miaoshu")
+    private String description;
+
+    /** 仓库仓库编码 */
+    @Excel(name = "仓库仓库编码")
+    @JSONField(name="FStockId.FNumber")
+    private String ckNumber;
+
+    /** 仓库名称 */
+    @Excel(name = "仓库名称")
+    @JSONField(name="FStockName")
+    private String ckName;
+
+    /** 批号 */
+    @Excel(name = "批号")
+    @JSONField(name="FLot.FNumber")
+    private String lotNumber;
+
+    /** 库存主单位 */
+    @Excel(name = "库存主单位")
+    @JSONField(name="FStockUnitId.FName")
+    private String unit;
+
+    /** 库存量(主单位) */
+    @Excel(name = "库存量", readConverterExp = "主=单位")
+    @JSONField(name="FBaseQty")
+    private Double stockQuantity;
+
+    /** 可用量(主单位) */
+    @Excel(name = "可用量", readConverterExp = "主=单位")
+    @JSONField(name="FBaseQty")
+    private String availableAmount;
+
+    /** 库存状态 */
+    @Excel(name = "库存状态")
+    @JSONField(name = "FStockStatusId.FName")
+    private String stockStatus;
+
+    /** 货主类型 */
+    @Excel(name = "货主类型")
+    @JSONField(name="FOWNERTYPEID")
+    private String ownerType;
+
+    /** 货主编码 */
+    @Excel(name = "货主编码")
+    @JSONField(name="FOWNERID")
+    private String ownerNumber;
+
+    /** 货主名称 */
+    @Excel(name = "货主名称")
+    @JSONField(name="FOWNERID")
+    private String ownerName;
+
+    /** 保管者类型 */
+    @Excel(name = "保管者类型")
+    @JSONField(name="FKEEPERTYPEID")
+    private String custodianType;
+
+    /** 保管者编码 */
+    @Excel(name = "保管者编码")
+    @JSONField(name="FKEEPERID")
+    private String custodianCode;
+
+    /** 保管者名称 */
+    @Excel(name = "保管者名称")
+    @JSONField(name="FKEEPERID")
+    private String custodianName;
+
+    /** 创建者id  */
+    @Excel(name = "创建者id ")
+    private Long createById;
+
+    /** 更新者id */
+    @Excel(name = "更新者id")
+    private Long updateById;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setMaterialCode(String materialCode)
+    {
+        this.materialCode = materialCode;
+    }
+
+    public String getMaterialCode()
+    {
+        return materialCode;
+    }
+    public void setMaterialName(String materialName)
+    {
+        this.materialName = materialName;
+    }
+
+    public String getMaterialName()
+    {
+        return materialName;
+    }
+    public void setSpecification(String specification)
+    {
+        this.specification = specification;
+    }
+
+    public String getSpecification()
+    {
+        return specification;
+    }
+    public void setModel(String model)
+    {
+        this.model = model;
+    }
+
+    public String getModel()
+    {
+        return model;
+    }
+    public void setMapNumber(String mapNumber)
+    {
+        this.mapNumber = mapNumber;
+    }
+
+    public String getMapNumber()
+    {
+        return mapNumber;
+    }
+    public void setDescription(String description)
+    {
+        this.description = description;
+    }
+
+    public String getDescription()
+    {
+        return description;
+    }
+    public void setCkNumber(String ckNumber)
+    {
+        this.ckNumber = ckNumber;
+    }
+
+    public String getCkNumber()
+    {
+        return ckNumber;
+    }
+    public void setCkName(String ckName)
+    {
+        this.ckName = ckName;
+    }
+
+    public String getCkName()
+    {
+        return ckName;
+    }
+    public void setLotNumber(String lotNumber)
+    {
+        this.lotNumber = lotNumber;
+    }
+
+    public String getLotNumber()
+    {
+        return lotNumber;
+    }
+    public void setUnit(String unit)
+    {
+        this.unit = unit;
+    }
+
+    public String getUnit()
+    {
+        return unit;
+    }
+    public void setStockQuantity(Double stockQuantity)
+    {
+        this.stockQuantity = stockQuantity;
+    }
+
+    public Double getStockQuantity()
+    {
+        return stockQuantity;
+    }
+    public void setAvailableAmount(String availableAmount)
+    {
+        this.availableAmount = availableAmount;
+    }
+
+    public String getAvailableAmount()
+    {
+        return availableAmount;
+    }
+    public void setStockStatus(String stockStatus)
+    {
+        this.stockStatus = stockStatus;
+    }
+
+    public String getStockStatus()
+    {
+        return stockStatus;
+    }
+    public void setOwnerType(String ownerType)
+    {
+        this.ownerType = ownerType;
+    }
+
+    public String getOwnerType()
+    {
+        return ownerType;
+    }
+    public void setOwnerNumber(String ownerNumber)
+    {
+        this.ownerNumber = ownerNumber;
+    }
+
+    public String getOwnerNumber()
+    {
+        return ownerNumber;
+    }
+    public void setOwnerName(String ownerName)
+    {
+        this.ownerName = ownerName;
+    }
+
+    public String getOwnerName()
+    {
+        return ownerName;
+    }
+    public void setCustodianType(String custodianType)
+    {
+        this.custodianType = custodianType;
+    }
+
+    public String getCustodianType()
+    {
+        return custodianType;
+    }
+    public void setCustodianCode(String custodianCode)
+    {
+        this.custodianCode = custodianCode;
+    }
+
+    public String getCustodianCode()
+    {
+        return custodianCode;
+    }
+    public void setCustodianName(String custodianName)
+    {
+        this.custodianName = custodianName;
+    }
+
+    public String getCustodianName()
+    {
+        return custodianName;
+    }
+    public void setCreateById(Long createById)
+    {
+        this.createById = createById;
+    }
+
+    public Long getCreateById()
+    {
+        return createById;
+    }
+    public void setUpdateById(Long updateById)
+    {
+        this.updateById = updateById;
+    }
+
+    public Long getUpdateById()
+    {
+        return updateById;
+    }
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("materialCode", getMaterialCode())
+                .append("materialName", getMaterialName())
+                .append("specification", getSpecification())
+                .append("model", getModel())
+                .append("mapNumber", getMapNumber())
+                .append("description", getDescription())
+                .append("ckNumber", getCkNumber())
+                .append("ckName", getCkName())
+                .append("lotNumber", getLotNumber())
+                .append("unit", getUnit())
+                .append("stockQuantity", getStockQuantity())
+                .append("availableAmount", getAvailableAmount())
+                .append("stockStatus", getStockStatus())
+                .append("ownerType", getOwnerType())
+                .append("ownerNumber", getOwnerNumber())
+                .append("ownerName", getOwnerName())
+                .append("custodianType", getCustodianType())
+                .append("custodianCode", getCustodianCode())
+                .append("custodianName", getCustodianName())
+                .append("remark", getRemark())
+                .append("createById", getCreateById())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateById", getUpdateById())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("delFlag", getDelFlag())
+                .toString();
+    }
+}

+ 477 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/domain/JdProductionBomsDetailsVo.java

@@ -0,0 +1,477 @@
+package com.zkqy.amichi.jd.domain;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.zkqy.common.annotation.Excel;
+import com.zkqy.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.math.BigDecimal;
+
+
+/**
+ * bom明细对象 production_boms_details
+ *
+ * @author ruoyi
+ * @date 2024-10-16
+ */
+public class JdProductionBomsDetailsVo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 单据编号 */
+    @Excel(name = "单据编号")
+    @JSONField(name="FBillNo")
+    private String fbillno;
+
+    /** 主项物料编号 */
+    @Excel(name = "主项物料编号")
+    @JSONField(name="FMaterialID2.FNumber")
+    private String fmaterialid2Fnumber;
+
+    /** 主项物料名称 */
+    @Excel(name = "主项物料名称")
+    @JSONField(name="FMaterialName1")
+    private String fmaterialname1;
+
+    /** 主项物料规格 */
+    @Excel(name = "主项物料规格")
+    @JSONField(name="FMaterialModel1")
+    private String fmaterialmodel1;
+
+    /** 基础属性 */
+    @Excel(name = "基础属性")
+    @JSONField(name="F.PONP.BaseProperty")
+    private String fPonpBaseproperty;
+
+    /** 物料类型 */
+    @Excel(name = "物料类型")
+    @JSONField(name="FMaterialType")
+    private String fmaterialtype;
+
+    /** 供应类型 */
+    @Excel(name = "供应类型")
+    @JSONField(name="FSupplyType")
+    private String fsupplytype;
+
+    /** 使用率 */
+    @Excel(name = "使用率")
+    @JSONField(name="FUseRate")
+    private BigDecimal fuseRate;
+
+    /** 操作员ID */
+    @Excel(name = "操作员ID")
+    @JSONField(name="FOperID")
+    private Long foperid;
+
+    /** 分子 */
+    @Excel(name = "分子")
+    @JSONField(name="FNumerator")
+    private BigDecimal fnumerator;
+
+    /** 分母 */
+    @Excel(name = "分母")
+    @JSONField(name="FDenominator")
+    private BigDecimal fdenominator;
+
+    /** 单位 */
+    @Excel(name = "单位")
+
+    @JSONField(name="FUnitID2.FName")
+    private String funitid2Fname;
+
+    /** 固定损耗 */
+    @Excel(name = "固定损耗")
+    @JSONField(name="FFixScrapQty")
+    private BigDecimal ffixscrapqty;
+
+    /** 变动损耗率 */
+    @Excel(name = "变动损耗率")
+    @JSONField(name="FScrapRate")
+    private BigDecimal fscraprate;
+
+    /** 应发数量 */
+    @Excel(name = "应发数量")
+    @JSONField(name="FMustQty")
+    private BigDecimal fmustqty;
+
+    /** 基本分子 */
+    @Excel(name = "基本分子")
+    @JSONField(name="FBASENUMERATOR")
+    private BigDecimal fbasenumerator;
+
+    /** 基本分母 */
+    @Excel(name = "基本分母")
+    @JSONField(name="FBASEDENOMINATOR")
+    private BigDecimal fbasedenominator;
+
+    /** 作业ID */
+    @Excel(name = "作业ID")
+    @JSONField(name="FPROCESSID")
+    private Long fprocessid;
+
+    /** 发料方式 */
+    @Excel(name = "发料方式")
+    @JSONField(name="FISSUETYPE")
+    private String fissuetype;
+
+    /** 反冲类型 */
+    @Excel(name = "倒冲类型")
+    @JSONField(name="FBackFlushType")
+    private String fbackflushtype;
+
+    /** 默认发料仓库 */
+    @Excel(name = "默认发料仓库")
+    @JSONField(name="FSTOCKID")
+    private Long fstockid;
+
+    /** 已领数量 */
+    @Excel(name = "已领数量")
+    @JSONField(name="FPICKEDQTY")
+    private BigDecimal fpickedqty;
+
+    /** 未领数量 */
+    @Excel(name = "未领数量")
+    @JSONField(name="FNOPICKEDQTY")
+    private BigDecimal fnopickedqty;
+
+    /** 库存数量 */
+    @Excel(name = "库存数量")
+    @JSONField(name="FINVENTORYQTY")
+    private BigDecimal finventoryqty;
+
+    /** 是否跳层 */
+    @Excel(name = "是否跳层")
+    @JSONField(name="FISSKIP")
+    private Integer fisskip;
+
+    /** 供应模式 */
+    @Excel(name = "供料模式")
+    @JSONField(name="FSUPPLYMODE")
+    private String fsupplymode;
+
+    /** 已分配数量 */
+    @Excel(name = "已分配数量")
+    @JSONField(name="FGLDBQTY")
+    private BigDecimal fgldbqty;
+
+    /** 基本需求量 */
+    @Excel(name = "基本需求量")
+    @JSONField(name="FBASENEEDQTY")
+    private BigDecimal fbaseneedqty;
+
+    /** 实际领料数量 */
+    @Excel(name = "实际领料数量")
+    @JSONField(name="FACTUALPICKQTY")
+    private BigDecimal factualpickqty;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setFbillno(String fbillno)
+    {
+        this.fbillno = fbillno;
+    }
+
+    public String getFbillno()
+    {
+        return fbillno;
+    }
+    public void setFmaterialid2Fnumber(String fmaterialid2Fnumber)
+    {
+        this.fmaterialid2Fnumber = fmaterialid2Fnumber;
+    }
+
+    public String getFmaterialid2Fnumber()
+    {
+        return fmaterialid2Fnumber;
+    }
+    public void setFmaterialname1(String fmaterialname1)
+    {
+        this.fmaterialname1 = fmaterialname1;
+    }
+
+    public String getFmaterialname1()
+    {
+        return fmaterialname1;
+    }
+    public void setFmaterialmodel1(String fmaterialmodel1)
+    {
+        this.fmaterialmodel1 = fmaterialmodel1;
+    }
+
+    public String getFmaterialmodel1()
+    {
+        return fmaterialmodel1;
+    }
+    public void setfPonpBaseproperty(String fPonpBaseproperty)
+    {
+        this.fPonpBaseproperty = fPonpBaseproperty;
+    }
+
+    public String getfPonpBaseproperty()
+    {
+        return fPonpBaseproperty;
+    }
+    public void setFmaterialtype(String fmaterialtype)
+    {
+        this.fmaterialtype = fmaterialtype;
+    }
+
+    public String getFmaterialtype()
+    {
+        return fmaterialtype;
+    }
+    public void setFsupplytype(String fsupplytype)
+    {
+        this.fsupplytype = fsupplytype;
+    }
+
+    public String getFsupplytype()
+    {
+        return fsupplytype;
+    }
+    public void setFuseRate(BigDecimal fuseRate)
+    {
+        this.fuseRate = fuseRate;
+    }
+
+    public BigDecimal getFuseRate()
+    {
+        return fuseRate;
+    }
+    public void setFoperid(Long foperid)
+    {
+        this.foperid = foperid;
+    }
+
+    public Long getFoperid()
+    {
+        return foperid;
+    }
+    public void setFnumerator(BigDecimal fnumerator)
+    {
+        this.fnumerator = fnumerator;
+    }
+
+    public BigDecimal getFnumerator()
+    {
+        return fnumerator;
+    }
+    public void setFdenominator(BigDecimal fdenominator)
+    {
+        this.fdenominator = fdenominator;
+    }
+
+    public BigDecimal getFdenominator()
+    {
+        return fdenominator;
+    }
+    public void setFunitid2Fname(String funitid2Fname)
+    {
+        this.funitid2Fname = funitid2Fname;
+    }
+
+    public String getFunitid2Fname()
+    {
+        return funitid2Fname;
+    }
+    public void setFfixscrapqty(BigDecimal ffixscrapqty)
+    {
+        this.ffixscrapqty = ffixscrapqty;
+    }
+
+    public BigDecimal getFfixscrapqty()
+    {
+        return ffixscrapqty;
+    }
+    public void setFscraprate(BigDecimal fscraprate)
+    {
+        this.fscraprate = fscraprate;
+    }
+
+    public BigDecimal getFscraprate()
+    {
+        return fscraprate;
+    }
+    public void setFmustqty(BigDecimal fmustqty)
+    {
+        this.fmustqty = fmustqty;
+    }
+
+    public BigDecimal getFmustqty()
+    {
+        return fmustqty;
+    }
+    public void setFbasenumerator(BigDecimal fbasenumerator)
+    {
+        this.fbasenumerator = fbasenumerator;
+    }
+
+    public BigDecimal getFbasenumerator()
+    {
+        return fbasenumerator;
+    }
+    public void setFbasedenominator(BigDecimal fbasedenominator)
+    {
+        this.fbasedenominator = fbasedenominator;
+    }
+
+    public BigDecimal getFbasedenominator()
+    {
+        return fbasedenominator;
+    }
+    public void setFprocessid(Long fprocessid)
+    {
+        this.fprocessid = fprocessid;
+    }
+
+    public Long getFprocessid()
+    {
+        return fprocessid;
+    }
+    public void setFissuetype(String fissuetype)
+    {
+        this.fissuetype = fissuetype;
+    }
+
+    public String getFissuetype()
+    {
+        return fissuetype;
+    }
+    public void setFbackflushtype(String fbackflushtype)
+    {
+        this.fbackflushtype = fbackflushtype;
+    }
+
+    public String getFbackflushtype()
+    {
+        return fbackflushtype;
+    }
+    public void setFstockid(Long fstockid)
+    {
+        this.fstockid = fstockid;
+    }
+
+    public Long getFstockid()
+    {
+        return fstockid;
+    }
+    public void setFpickedqty(BigDecimal fpickedqty)
+    {
+        this.fpickedqty = fpickedqty;
+    }
+
+    public BigDecimal getFpickedqty()
+    {
+        return fpickedqty;
+    }
+    public void setFnopickedqty(BigDecimal fnopickedqty)
+    {
+        this.fnopickedqty = fnopickedqty;
+    }
+
+    public BigDecimal getFnopickedqty()
+    {
+        return fnopickedqty;
+    }
+    public void setFinventoryqty(BigDecimal finventoryqty)
+    {
+        this.finventoryqty = finventoryqty;
+    }
+
+    public BigDecimal getFinventoryqty()
+    {
+        return finventoryqty;
+    }
+    public void setFisskip(Integer fisskip)
+    {
+        this.fisskip = fisskip;
+    }
+
+    public Integer getFisskip()
+    {
+        return fisskip;
+    }
+    public void setFsupplymode(String fsupplymode)
+    {
+        this.fsupplymode = fsupplymode;
+    }
+
+    public String getFsupplymode()
+    {
+        return fsupplymode;
+    }
+    public void setFgldbqty(BigDecimal fgldbqty)
+    {
+        this.fgldbqty = fgldbqty;
+    }
+
+    public BigDecimal getFgldbqty()
+    {
+        return fgldbqty;
+    }
+    public void setFbaseneedqty(BigDecimal fbaseneedqty)
+    {
+        this.fbaseneedqty = fbaseneedqty;
+    }
+
+    public BigDecimal getFbaseneedqty()
+    {
+        return fbaseneedqty;
+    }
+    public void setFactualpickqty(BigDecimal factualpickqty)
+    {
+        this.factualpickqty = factualpickqty;
+    }
+
+    public BigDecimal getFactualpickqty()
+    {
+        return factualpickqty;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("fbillno", getFbillno())
+                .append("fmaterialid2Fnumber", getFmaterialid2Fnumber())
+                .append("fmaterialname1", getFmaterialname1())
+                .append("fmaterialmodel1", getFmaterialmodel1())
+                .append("fPonpBaseproperty", getfPonpBaseproperty())
+                .append("fmaterialtype", getFmaterialtype())
+                .append("fsupplytype", getFsupplytype())
+                .append("fuseRate", getFuseRate())
+                .append("foperid", getFoperid())
+                .append("fnumerator", getFnumerator())
+                .append("fdenominator", getFdenominator())
+                .append("funitid2Fname", getFunitid2Fname())
+                .append("ffixscrapqty", getFfixscrapqty())
+                .append("fscraprate", getFscraprate())
+                .append("fmustqty", getFmustqty())
+                .append("fbasenumerator", getFbasenumerator())
+                .append("fbasedenominator", getFbasedenominator())
+                .append("fprocessid", getFprocessid())
+                .append("fissuetype", getFissuetype())
+                .append("fbackflushtype", getFbackflushtype())
+                .append("fstockid", getFstockid())
+                .append("fpickedqty", getFpickedqty())
+                .append("fnopickedqty", getFnopickedqty())
+                .append("finventoryqty", getFinventoryqty())
+                .append("fisskip", getFisskip())
+                .append("fsupplymode", getFsupplymode())
+                .append("fgldbqty", getFgldbqty())
+                .append("fbaseneedqty", getFbaseneedqty())
+                .append("factualpickqty", getFactualpickqty())
+                .toString();
+    }
+}

+ 78 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/mapper/JdProductionOrderMapper.java

@@ -0,0 +1,78 @@
+package com.zkqy.amichi.jd.mapper;
+
+import java.util.List;
+import com.zkqy.amichi.jd.domain.JdProductionOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 金蝶-生产订单信息Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-10-12
+ */
+@Mapper
+public interface JdProductionOrderMapper 
+{
+    /**
+     * 查询金蝶-生产订单信息
+     * 
+     * @param id 金蝶-生产订单信息主键
+     * @return 金蝶-生产订单信息
+     */
+    public JdProductionOrder selectJdProductionOrderById(Long id);
+
+    /**
+     * 返回最大的需求单据
+     *
+     * @return 金蝶-生产订单信息
+     */
+    public String selectJdProductionOrderMaxId();
+
+    /**
+     * 查询金蝶-生产订单信息列表
+     * 
+     * @param jdProductionOrder 金蝶-生产订单信息
+     * @return 金蝶-生产订单信息集合
+     */
+    public List<JdProductionOrder> selectJdProductionOrderList(JdProductionOrder jdProductionOrder);
+
+    /**
+     * 新增金蝶-生产订单信息
+     * 
+     * @param jdProductionOrder 金蝶-生产订单信息
+     * @return 结果
+     */
+    public int insertJdProductionOrder(JdProductionOrder jdProductionOrder);
+
+    /**
+     * 新增金蝶-生产订单信息
+     *
+     * @param jdProductionOrder 金蝶-生产订单信息
+     * @return 结果
+     */
+    public int insertBatchJdProductionOrder(List<JdProductionOrder> jdProductionOrder);
+
+    /**
+     * 修改金蝶-生产订单信息
+     * 
+     * @param jdProductionOrder 金蝶-生产订单信息
+     * @return 结果
+     */
+    public int updateJdProductionOrder(JdProductionOrder jdProductionOrder);
+
+    /**
+     * 删除金蝶-生产订单信息
+     * 
+     * @param id 金蝶-生产订单信息主键
+     * @return 结果
+     */
+    public int deleteJdProductionOrderById(Long id);
+
+    /**
+     * 批量删除金蝶-生产订单信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteJdProductionOrderByIds(Long[] ids);
+}

+ 23 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/JdBomGroupService.java

@@ -0,0 +1,23 @@
+package com.zkqy.amichi.jd.service;
+
+import com.zkqy.amichi.jd.domain.JdProductionOrder;
+import com.zkqy.common.core.domain.AjaxResult;
+
+public interface JdBomGroupService {
+    /**
+     * 拉取物料分组分组信息
+     * @return
+     */
+    public AjaxResult jdBomGroupPull();
+
+    /**
+     * 拉取金蝶系统的物料版本信息
+     * @return
+     */
+    public AjaxResult jdBomGroupVersionInfoPull();
+
+    /**
+     * 拉取版本物料详细信息
+     */
+    public AjaxResult jdBomVersionDetailInfoPull(String parentMaterialCode);
+}

+ 17 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/JdProductionBomsService.java

@@ -0,0 +1,17 @@
+package com.zkqy.amichi.jd.service;
+
+import com.zkqy.common.core.domain.AjaxResult;
+
+public interface JdProductionBomsService {
+    /**
+     * 拉取物料分组分组信息
+     * @return
+     */
+    public AjaxResult jdProductionBomsPull();
+
+    /**
+     *  拉取生产用料清单的Bom 详细信息
+     */
+    public AjaxResult jdProductionBomsDetailsPull();
+
+}

+ 147 - 0
zkqy-fujian-amichi/src/main/java/com/zkqy/amichi/jd/service/impl/JdBomGroupServiceImpl.java

@@ -0,0 +1,147 @@
+package com.zkqy.amichi.jd.service.impl;
+
+import com.alibaba.fastjson2.JSON;
+import com.kingdee.bos.webapi.sdk.K3CloudApi;
+import com.zkqy.amichi.jd.domain.JdBomGroupVo;
+import com.zkqy.amichi.jd.domain.JdBomVersionDetailVo;
+import com.zkqy.amichi.jd.domain.JdBomVersionListVo;
+import com.zkqy.amichi.jd.service.JdBomGroupService;
+import com.zkqy.amichi.mapper.BomGroupMapper;
+import com.zkqy.amichi.mapper.BomVersionDetailMapper;
+import com.zkqy.amichi.mapper.BomVersionListMapper;
+import com.zkqy.common.core.domain.AjaxResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class JdBomGroupServiceImpl implements JdBomGroupService {
+
+    @Autowired
+    BomGroupMapper bomGroupMapper;
+
+    @Autowired
+    BomVersionListMapper bomVersionListMapper;
+
+    @Autowired
+    BomVersionDetailMapper bomVersionDetailMapper;
+
+    @Override
+    public AjaxResult jdBomGroupPull() {
+        //条件json
+        String queryJson="{\n" +
+                "    \"FormId\": \"ENG_BOMGROUP\",\n" +
+                "    \"FieldKeys\": \"fid,FNumber,FNAME,FParentId\",\n" +
+                "    \"FilterString\": [],\n" +
+                "    \"OrderString\": \"\",\n" +
+                "    \"TopRowCount\": 0,\n" +
+                "    \"StartRow\": 0,\n" +
+                "    \"Limit\": 2000,\n" +
+                "    \"SubSystemId\": \"\"\n" +
+                "}";
+        //执行查询
+        K3CloudApi api = new K3CloudApi();
+        try {
+            //执行查询
+            String resultJson = api.billQuery(queryJson);
+            //json转换
+            List<JdBomGroupVo> mapList = JSON.parseArray(resultJson, JdBomGroupVo.class);
+            //执行新增逻辑
+            int i = bomGroupMapper.insertBomGroupBatch(mapList);
+            if(i>0){
+                return AjaxResult.success("拉取BOM分组信息成功");
+            }else {
+                return AjaxResult.error("拉取BOM分组信息失败");
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * 拉取金蝶系统组内的版本号信息
+     * @return
+     */
+    @Override
+    public AjaxResult jdBomGroupVersionInfoPull() {
+        //查询条件
+        String queryString="{\n" +
+                "    \"FormId\": \"ENG_BOM\",\n" +
+                "    \"FieldKeys\": \"FGroup.FNumber,FNUMBER,FNAME,FBOMCATEGORY,FMATERIALID.FNumber,FITEMNAME,FITEMMODEL,FDESCRIPTION,FDocumentStatus \",\n" +
+                "    \"FilterString\": [],\n" +
+                "    \"OrderString\": \"\",\n" +
+                "    \"TopRowCount\": 0,\n" +
+                "    \"StartRow\": 0,\n" +
+                "    \"Limit\":5000,\n" +
+                "    \"SubSystemId\": \"\"\n" +
+                "}";
+        Map<String,String> map = JSON.parseObject(queryString, Map.class);
+        K3CloudApi api = new K3CloudApi();
+        int startRow = 0; // 起始行号
+        int limit = 5000; // 每次查询的数量
+        List<JdBomVersionListVo> mapList;
+        try {
+            do {
+                // 更新查询条件中的起始行号
+                map.put("StartRow", String.valueOf(startRow));
+                // 查询数据
+                String resultJson = api.billQuery(JSON.toJSONString(map));
+                mapList = JSON.parseArray(resultJson, JdBomVersionListVo.class);
+                // int size = mapList.size();
+                // 处理数据(例如插入到数据库)
+                bomVersionListMapper.insertBomVersionListBatch(mapList);
+                // 更新起始行号
+                startRow += limit;
+                // 如果返回的数据量小于5000,说明已经没有更多的数据,结束循环
+            } while (mapList.size() == 0);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        //abc
+        return  AjaxResult.success("拉取成功");
+    }
+
+    @Override
+    public AjaxResult jdBomVersionDetailInfoPull(String parentMaterialCode) {
+        //查询条件
+        String queryString="{\n" +
+                "    \"FormId\": \"ENG_BOM\",\n" +
+                "    \"FieldKeys\": \"FMATERIALIDCHILD.FNumber,FCHILDITEMNAME,FITEMMODEL,F_PONP_xinghao,FITEMPPROPERTY,FSupplyType,FMATERIALTYPE,FPROCESSID.FName,FPROCESSID.FNumber,FCHILDUNITID.FName,FDOSAGETYPE,FNUMERATOR,FDENOMINATOR,FFIXSCRAPQTY,FSCRAPRATE,FCHILDSUPPLYORGID,FBOMID.FNumber,FSubMdlId,FMEMO,FSUPPLYORG,FSTOCKID,FISSUETYPE,FISSkip,FIsCanReplace,FNETDEMANDRATE\",\n" +
+                "    \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FMATERIALID.FNumber\",\"Compare\":\"17\",\"Value\":\""+parentMaterialCode+"\",\"Right\":\"\",\"Logic\":0}],\n" +
+                "    \"OrderString\": \"\",\n" +
+                "    \"TopRowCount\": 0,\n" +
+                "    \"StartRow\": 0,\n" +
+                "    \"Limit\": 2000,\n" +
+                "    \"SubSystemId\": \"\"\n" +
+                "}";
+        Map<String,String> map = JSON.parseObject(queryString, Map.class);
+        K3CloudApi api = new K3CloudApi();
+        int startRow = 0; // 起始行号
+        int limit = 5000; // 每次查询的数量
+        List<JdBomVersionDetailVo> mapList;
+        try {
+            do {
+                // 更新查询条件中的起始行号
+                map.put("StartRow", String.valueOf(startRow));
+                // 查询数据
+                String resultJson = api.billQuery(JSON.toJSONString(map));
+                mapList = JSON.parseArray(resultJson, JdBomVersionDetailVo.class);
+                mapList.forEach(item->{
+                    item.setParentMaterialCode(parentMaterialCode);
+                });
+                // int size = mapList.size();
+                // 处理数据(例如插入到数据库)
+                bomVersionDetailMapper.insertBomVersionDetailBatch(mapList);
+//                bomVersionListMapper.insertBomVersionListBatch(mapList);
+                // 更新起始行号
+                startRow += limit;
+                // 如果返回的数据量小于5000,说明已经没有更多的数据,结束循环
+            } while (mapList.size() < 2000);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        //abc
+        return  AjaxResult.success("详细信息拉取成功");
+    }
+}

+ 9 - 11
zkqy-ui/.env.production

@@ -1,5 +1,5 @@
 # 页面标题
-VUE_APP_TITLE = 后台管理系统
+VUE_APP_TITLE = 化纤生产协同管理系统
 
 # 生产环境配置
 ENV = 'production'
@@ -8,22 +8,20 @@ ENV = 'production'
 VUE_APP_BASE_API = '/prod-api'
 
 # 生产环境
-# VUE_APP_BASE_API1 = 'http://62.234.61.92:8066/'
 VUE_APP_BASE_API1 = 'http://192.168.0.17:8066/'
+# VUE_APP_BASE_API1 = 'http://62.234.61.92:8066/'
+#VUE_APP_BASE_API1 = 'http://192.168.2.135:8066/'
+#VUE_APP_BASE_API1 = 'http://192.168.58.1:8066/'
 
 
 # 图片路径
-VUE_APP_BASE_IMG_API = 'http://192.168.0.17:1024/dev-api'
+VUE_APP_BASE_IMG_API = 'http://192.168.0.17:1024/prod-api'
+
+#VUE_APP_BASE_IMG_API = 'http://192.168.58.1:1024/prod-api'
 
 # ws地址
 VUE_APP_BASE_WS_API = '//127.0.0.1:8721'
 
+VUE_APP_BASE_WS_API = '//127.0.0.1:8721'
 
-#数据引擎模块IP
-#VUE_APP_BASE_API2 = '/DB'
-
-#表单引擎模块IP
-#VUE_APP_BASE_API3 = '/FORM'
-
-#流程引擎模块IP
-#VUE_APP_BASE_API4 = '/BPM'
+VUE_APP_BASE_IMG_API_MINIO='http://192.168.128.164:9000/xingneng'

+ 0 - 12
zkqy-ui/bin/package.bat

@@ -1,12 +0,0 @@
-@echo off
-echo.
-echo [信息] 安装Web工程,生成node_modules文件。
-echo.
-
-%~d0
-cd %~dp0
-
-cd ..
-npm install --registry=https://registry.npmmirror.com
-
-pause